Shashidhara | Remove last name
This commit is contained in:
@@ -64,7 +64,7 @@ class LoanBankUserJourney : AbstractCustomerAppTestCase() {
|
||||
fun shouldShowBankDetailsPage() {
|
||||
PreferenceManager.setObjectPreference(
|
||||
Constants.CURRENT_USER, UserDetail(
|
||||
firstName = "Tyrion",
|
||||
name = "Tyrion",
|
||||
lastName = "lannister"
|
||||
)
|
||||
)
|
||||
|
||||
@@ -263,7 +263,6 @@ class NaviAnalytics private constructor() {
|
||||
private val screenName = PROFILE
|
||||
fun onEmailEdit() = NaviTrackEvent.trackEvent("email_edit")
|
||||
fun onFirstNameEdit() = NaviTrackEvent.trackEvent("firstname_edit")
|
||||
fun onLastNameEdit() = NaviTrackEvent.trackEvent("lastname_edit")
|
||||
fun onMaritalStatusSelect() = NaviTrackEvent.trackEvent("marital_status_select")
|
||||
fun onCurrentPinCodeEdit() = NaviTrackEvent.trackEvent("current_pincode_edit")
|
||||
fun onDobDateEdit() = NaviTrackEvent.trackEvent("dob_dd_edit")
|
||||
@@ -273,7 +272,6 @@ class NaviAnalytics private constructor() {
|
||||
fun onProfileNextButtonTap(
|
||||
email: String?,
|
||||
firstName: String?,
|
||||
lastName: String?,
|
||||
dob: String?,
|
||||
maritalStatus: String?,
|
||||
pinCode: String?
|
||||
@@ -291,7 +289,6 @@ class NaviAnalytics private constructor() {
|
||||
}
|
||||
if (!email.isNullOrBlank()) map["email_attribute"] = email
|
||||
if (!firstName.isNullOrBlank()) map["firstname_attribute"] = firstName
|
||||
if (!lastName.isNullOrBlank()) map["lastname_attribute"] = lastName
|
||||
if (!maritalStatus.isNullOrBlank()) map["marital_status_attribute"] = maritalStatus
|
||||
if (!pinCode.isNullOrBlank()) map["current_pincode_attribute"] = pinCode
|
||||
NaviTrackEvent.trackEvent("profile_next_button_tap", map, true)
|
||||
|
||||
@@ -48,10 +48,8 @@ class UxcamUtil private constructor() {
|
||||
fun setUserProperty(user: UserDetail?) {
|
||||
try {
|
||||
user?.let {
|
||||
if (!it.firstName.isNullOrBlank())
|
||||
UXCam.setUserProperty("First_Name", it.firstName.orEmpty())
|
||||
if (!it.lastName.isNullOrBlank())
|
||||
UXCam.setUserProperty("Last_Name", it.lastName.orEmpty())
|
||||
if (!it.name.isNullOrBlank())
|
||||
UXCam.setUserProperty("First_Name", it.name.orEmpty())
|
||||
if (!it.phoneNumber.isNullOrBlank())
|
||||
UXCam.setUserProperty("Phone_Number", it.phoneNumber.orEmpty())
|
||||
}
|
||||
|
||||
@@ -93,10 +93,8 @@ object MoengageUtil {
|
||||
try {
|
||||
user?.let { data ->
|
||||
val helper = MoEHelper.getInstance(NaviApplication.instance)
|
||||
if (!data.firstName.isNullOrBlank())
|
||||
helper.setFirstName(data.firstName.orEmpty())
|
||||
if (!data.lastName.isNullOrBlank())
|
||||
helper.setLastName(data.lastName.orEmpty())
|
||||
if (!data.name.isNullOrBlank())
|
||||
helper.setFirstName(data.name.orEmpty())
|
||||
if (!data.phoneNumber.isNullOrBlank())
|
||||
helper.setNumber(data.phoneNumber.orEmpty())
|
||||
if (!data.email.isNullOrBlank())
|
||||
|
||||
@@ -38,6 +38,6 @@ object UserManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun getName() = user?.firstName + SPACE + user?.lastName
|
||||
fun getName() = user?.name
|
||||
|
||||
}
|
||||
@@ -10,9 +10,8 @@ import com.google.gson.annotations.SerializedName
|
||||
|
||||
data class UserDetail(
|
||||
@SerializedName("email") var email: String? = null,
|
||||
@SerializedName("firstName") var firstName: String? = null,
|
||||
@SerializedName("name") var name: String? = null,
|
||||
@SerializedName("phoneNumber") val phoneNumber: String? = null,
|
||||
@SerializedName("lastName") var lastName: String? = null,
|
||||
@SerializedName("dateOfBirth") var dateOfBirth: String? = null,
|
||||
@SerializedName("maritalStatus") var maritalStatus: String? = null,
|
||||
@SerializedName("pinCode") var pinCode: String? = null,
|
||||
|
||||
@@ -3,8 +3,7 @@ package com.naviapp.models.request
|
||||
import com.google.gson.annotations.SerializedName
|
||||
|
||||
data class ProfileRequest(
|
||||
@SerializedName("firstName") val firstName: String?,
|
||||
@SerializedName("lastName") val lastName: String?,
|
||||
@SerializedName("name") val name: String?,
|
||||
@SerializedName("email") val email: String?,
|
||||
@SerializedName("dateOfBirth") val dateOfBirth: String?,
|
||||
@SerializedName("maritalStatus") val maritalStatus: String?,
|
||||
|
||||
@@ -32,8 +32,14 @@ import com.naviapp.useridentification.pan.fragments.PanFragment
|
||||
import com.naviapp.useridentification.profile.fragments.ProfileFragment
|
||||
import com.naviapp.useridentification.viewmodels.UserIdentificationVM
|
||||
import com.naviapp.useridentification.work.fragments.WorkFragment
|
||||
import com.naviapp.utils.*
|
||||
import com.naviapp.utils.Constants
|
||||
import com.naviapp.utils.Constants.SHOULD_SET_PROGRESS
|
||||
import com.naviapp.utils.UNDERSCORE
|
||||
import com.naviapp.utils.log
|
||||
import com.naviapp.utils.observeNonNull
|
||||
import com.naviapp.utils.onPageSelected
|
||||
import com.naviapp.utils.orFalse
|
||||
import com.naviapp.utils.setEaseInAnimation
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
@@ -25,7 +25,11 @@ import com.naviapp.common.navigator.ScreenNavigator
|
||||
import com.naviapp.dashboard.listeners.FragmentInterchangeListener
|
||||
import com.naviapp.databinding.UserProfileFragmentBinding
|
||||
import com.naviapp.errors.activities.ErrorActivity
|
||||
import com.naviapp.firebasedb.*
|
||||
import com.naviapp.firebasedb.BASIC_DETAILS
|
||||
import com.naviapp.firebasedb.FirebaseDataHelper
|
||||
import com.naviapp.firebasedb.FirebaseDataReceiveListener
|
||||
import com.naviapp.firebasedb.FirebaseResponse
|
||||
import com.naviapp.firebasedb.FirebaseStatusType
|
||||
import com.naviapp.models.UserDetail
|
||||
import com.naviapp.network.ApiErrorTagType
|
||||
import com.naviapp.network.ApiErrorTagType.PROFILE_DETAILS_UPLOAD
|
||||
@@ -113,8 +117,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
private fun initListeners() {
|
||||
binding.nextBtn.setOnClickListener(this)
|
||||
binding.emailLayout.personalEmailIdEt.onFocusChangeListener = this
|
||||
binding.fullNameLayout.firstNameEt.onFocusChangeListener = this
|
||||
binding.fullNameLayout.lastNameEt.onFocusChangeListener = this
|
||||
binding.fullNameLayout.fullNameEt.onFocusChangeListener = this
|
||||
binding.dobLayout.dobEt.onFocusChangeListener = this
|
||||
binding.pincodeLayout.pincodeEt.onFocusChangeListener = this
|
||||
}
|
||||
@@ -190,8 +193,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
PreferenceManager.getObjectPrefrences(CURRENT_USER, UserDetail::class.java)
|
||||
?: UserDetail()
|
||||
userDetail.email = binding.emailLayout.personalEmailIdEt.text.toString()
|
||||
userDetail.firstName = binding.fullNameLayout.firstNameEt.text.toString()
|
||||
userDetail.lastName = binding.fullNameLayout.lastNameEt.text.toString()
|
||||
userDetail.name = binding.fullNameLayout.fullNameEt.text.toString()
|
||||
userDetail.dateOfBirth = binding.dobLayout.dobEt.getText()
|
||||
userDetail.pinCode = binding.pincodeLayout.pincodeEt.text.toString()
|
||||
getMaritalStatus()?.let {
|
||||
@@ -208,14 +210,9 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
)
|
||||
binding.nextBtn.setViewBg(bgColor = R.color.disabled_button_color)
|
||||
|
||||
binding.fullNameLayout.firstNameEt.setDependentFormTextView(binding.fullNameLayout.fullNameTv)
|
||||
binding.fullNameLayout.lastNameEt.setDependentFormTextView(binding.fullNameLayout.fullNameTv)
|
||||
|
||||
binding.fullNameLayout.firstNameEt.inputType = InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
||||
binding.fullNameLayout.lastNameEt.inputType = InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
||||
|
||||
binding.fullNameLayout.firstNameEt.addTextChangedListener { enableNextButton() }
|
||||
binding.fullNameLayout.lastNameEt.addTextChangedListener { enableNextButton() }
|
||||
binding.fullNameLayout.fullNameEt.setDependentFormTextView(binding.fullNameLayout.fullNameTv)
|
||||
binding.fullNameLayout.fullNameEt.inputType = InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
||||
binding.fullNameLayout.fullNameEt.addTextChangedListener { enableNextButton() }
|
||||
|
||||
binding.emailLayout.personalEmailIdEt.setDependentFormTextView(binding.emailLayout.personalEmailTv)
|
||||
binding.emailLayout.personalEmailIdEt.addTextChangedListener { enableNextButton() }
|
||||
@@ -257,8 +254,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
|
||||
private fun populateData(userDetail: UserDetail) {
|
||||
userDetail.email?.let { binding.emailLayout.personalEmailIdEt.setText(it) } ?: emailDialog()
|
||||
binding.fullNameLayout.firstNameEt.setText(userDetail.firstName.orEmpty())
|
||||
binding.fullNameLayout.lastNameEt.setText(userDetail.lastName.orEmpty())
|
||||
binding.fullNameLayout.fullNameEt.setText(userDetail.name.orEmpty())
|
||||
binding.dobLayout.dobEt.setText(userDetail.dateOfBirth.orEmpty())
|
||||
when (userDetail.maritalStatus) {
|
||||
MARRIED -> binding.maritalStatusLayout.marriedRb.isChecked = true
|
||||
@@ -275,7 +271,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
if (emailIds.size == 1) {
|
||||
binding.emailLayout.personalEmailIdEt.setText(emailIds[0])
|
||||
val fullName = binding.fullNameLayout
|
||||
if (fullName.firstNameEt.text.isNullOrEmpty() && fullName.lastNameEt.text.isNullOrEmpty()) {
|
||||
if (fullName.fullNameEt.text.isNullOrEmpty()) {
|
||||
readName(emailIds[0], binding)
|
||||
}
|
||||
return
|
||||
@@ -295,7 +291,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
dialog.cancel()
|
||||
|
||||
val fullName = binding.fullNameLayout
|
||||
if (fullName.firstNameEt.text.isNullOrEmpty() && fullName.lastNameEt.text.isNullOrEmpty()) {
|
||||
if (fullName.fullNameEt.text.isNullOrEmpty()) {
|
||||
readName(emailIds[which], binding)
|
||||
}
|
||||
}
|
||||
@@ -317,12 +313,9 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
listener?.navigateToActiveScreen(Bundle().apply {
|
||||
putBoolean(SHOULD_SET_PROGRESS, true)
|
||||
})
|
||||
val firstName = binding.fullNameLayout.firstNameEt.text.toString().trim()
|
||||
val lastName = binding.fullNameLayout.lastNameEt.text.toString().trim()
|
||||
val fullName = firstName + lastName
|
||||
val fullName = binding.fullNameLayout.fullNameEt.text.toString().trim()
|
||||
if (binding.emailLayout.personalEmailIdEt.text.toString().isNotBlank() &&
|
||||
firstName.isNotBlank() &&
|
||||
lastName.isNotBlank() &&
|
||||
fullName.isNotBlank() &&
|
||||
binding.dobLayout.dobEt.isDataPresent() &&
|
||||
binding.maritalStatusLayout.maritalStatusRg.isChecked() &&
|
||||
binding.pincodeLayout.pincodeEt.text.toString().isNotBlank()
|
||||
@@ -336,16 +329,14 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
private fun submitProfileDetails(skipValidation: Boolean = false) {
|
||||
if (validateProfileDetails().not()) return
|
||||
val email = binding.emailLayout.personalEmailIdEt.text.toString()
|
||||
val firstName = binding.fullNameLayout.firstNameEt.text.toString()
|
||||
val lastName = binding.fullNameLayout.lastNameEt.text.toString()
|
||||
val name = binding.fullNameLayout.fullNameEt.text.toString()
|
||||
val dob = binding.dobLayout.dobEt.getText()
|
||||
val pinCode = binding.pincodeLayout.pincodeEt.text.toString()
|
||||
|
||||
getMaritalStatus()?.let { maritalStatus ->
|
||||
viewModel.submitProfileDetails(
|
||||
email,
|
||||
firstName,
|
||||
lastName,
|
||||
name,
|
||||
dob,
|
||||
maritalStatus,
|
||||
pinCode,
|
||||
@@ -388,20 +379,13 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
binding.emailLayout.personalEmailIdEt.setError(getString(R.string.enter_valid_email))
|
||||
validated = false
|
||||
}
|
||||
val firstName = binding.fullNameLayout.firstNameEt.text.toString().trim()
|
||||
val lastName = binding.fullNameLayout.lastNameEt.text.toString().trim()
|
||||
val fullName = firstName + lastName
|
||||
val firstName = binding.fullNameLayout.fullNameEt.text.toString().trim()
|
||||
if (firstName.isValidName().not()) {
|
||||
binding.fullNameLayout.firstNameEt.setError(getString(R.string.enter_valid_name))
|
||||
binding.fullNameLayout.fullNameEt.setError(getString(R.string.enter_valid_name))
|
||||
validated = false
|
||||
}
|
||||
if (lastName.isValidName().not()) {
|
||||
binding.fullNameLayout.lastNameEt.setError(getString(R.string.enter_valid_name))
|
||||
validated = false
|
||||
}
|
||||
if (fullName.length < MIN_FULL_NAME_LENGTH) {
|
||||
binding.fullNameLayout.firstNameEt.setError(getString(R.string.enter_valid_name))
|
||||
binding.fullNameLayout.lastNameEt.setError(getString(R.string.enter_valid_name))
|
||||
if (firstName.length < MIN_FULL_NAME_LENGTH) {
|
||||
binding.fullNameLayout.fullNameEt.setError(getString(R.string.enter_valid_name))
|
||||
validated = false
|
||||
}
|
||||
validateFormElement(binding.dobLayout.dobEt, null)?.let { validated = it }
|
||||
@@ -418,8 +402,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
private fun onNextButtonClick() {
|
||||
naviAnalyticsEventTracker.onProfileNextButtonTap(
|
||||
binding.emailLayout.personalEmailIdEt.text.toString(),
|
||||
binding.fullNameLayout.firstNameEt.text.toString(),
|
||||
binding.fullNameLayout.lastNameEt.text.toString(),
|
||||
binding.fullNameLayout.fullNameEt.text.toString(),
|
||||
binding.dobLayout.dobEt.getText(),
|
||||
getMaritalStatus(),
|
||||
binding.pincodeLayout.pincodeEt.text.toString()
|
||||
@@ -449,8 +432,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
|
||||
override fun onFocusChange(view: View?, hasFocus: Boolean) {
|
||||
when (view?.id) {
|
||||
R.id.personal_email_id_et -> if (hasFocus) naviAnalyticsEventTracker.onEmailEdit()
|
||||
R.id.first_name_et -> if (hasFocus) naviAnalyticsEventTracker.onFirstNameEdit()
|
||||
R.id.last_name_et -> if (hasFocus) naviAnalyticsEventTracker.onLastNameEdit()
|
||||
R.id.full_name_et -> if (hasFocus) naviAnalyticsEventTracker.onFirstNameEdit()
|
||||
R.id.pincode_et -> if (hasFocus) naviAnalyticsEventTracker.onCurrentPinCodeEdit()
|
||||
R.id.date_et -> if (hasFocus) naviAnalyticsEventTracker.onDobDateEdit()
|
||||
R.id.month_et -> if (hasFocus) naviAnalyticsEventTracker.onDobMonthEdit()
|
||||
|
||||
@@ -10,15 +10,14 @@ fun readName(accountName: String, binding: UserProfileFragmentBinding) {
|
||||
val cursor = executeQueryToReadName(accountName)
|
||||
cursor?.run {
|
||||
if (!moveToFirst()) {
|
||||
binding.fullNameLayout.firstNameEt.requestFocus()
|
||||
binding.fullNameLayout.fullNameEt.requestFocus()
|
||||
return
|
||||
}
|
||||
val fullName = getString(0).split(" ")
|
||||
val fullName = getString(0)
|
||||
|
||||
binding.fullNameLayout.firstNameEt.setText(fullName.getOrNull(0)?.capitalize())
|
||||
binding.fullNameLayout.lastNameEt.setText(fullName.getOrNull(1)?.capitalize())
|
||||
binding.fullNameLayout.fullNameEt.setText(fullName.capitalize())
|
||||
binding.dobLayout.dobEt.requestFocus()
|
||||
} ?: binding.fullNameLayout.firstNameEt.requestFocus()
|
||||
} ?: binding.fullNameLayout.fullNameEt.requestFocus()
|
||||
cursor?.close()
|
||||
}
|
||||
|
||||
|
||||
@@ -31,8 +31,7 @@ class ProfileVM : BaseVM() {
|
||||
|
||||
fun submitProfileDetails(
|
||||
email: String,
|
||||
firstName: String,
|
||||
lastName: String,
|
||||
name: String,
|
||||
dob: String,
|
||||
maritalStatus: String,
|
||||
pinCode: String,
|
||||
@@ -40,8 +39,7 @@ class ProfileVM : BaseVM() {
|
||||
) {
|
||||
coroutineScope.launch {
|
||||
val profileRequest = ProfileRequest(
|
||||
firstName,
|
||||
lastName,
|
||||
name,
|
||||
email,
|
||||
dob,
|
||||
maritalStatus,
|
||||
|
||||
@@ -35,40 +35,24 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_dp_2"
|
||||
android:letterSpacing="0.01"
|
||||
android:text="@string/as_per_pan_card"
|
||||
android:text="@string/as_per_pan"
|
||||
app:layout_constraintBottom_toBottomOf="@id/full_name_iv"
|
||||
app:layout_constraintStart_toEndOf="@id/full_name_tv"
|
||||
app:layout_constraintTop_toTopOf="@id/full_name_iv" />
|
||||
|
||||
<com.naviapp.useridentification.common.FormEditText
|
||||
android:id="@+id/first_name_et"
|
||||
android:id="@+id/full_name_et"
|
||||
style="@style/FormElementFontStyle"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_dp_16"
|
||||
android:backgroundTint="@color/black"
|
||||
android:hint="@string/first_name"
|
||||
android:hint="@string/first_last_name"
|
||||
android:maxLength="@integer/max_name_length"
|
||||
android:inputType="textPersonName|textCapWords"
|
||||
android:letterSpacing="0.03"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/full_name_iv"
|
||||
app:layout_constraintTop_toBottomOf="@id/full_name_tv" />
|
||||
|
||||
<com.naviapp.useridentification.common.FormEditText
|
||||
android:id="@+id/last_name_et"
|
||||
style="@style/FormElementFontStyle"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_dp_16"
|
||||
android:backgroundTint="@color/black"
|
||||
android:hint="@string/last_name"
|
||||
android:maxLength="@integer/max_name_length"
|
||||
android:nextFocusDown="@id/date_et"
|
||||
android:inputType="textPersonName|textCapWords"
|
||||
android:letterSpacing="0.03"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/full_name_iv"
|
||||
app:layout_constraintTop_toBottomOf="@id/first_name_et" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
@@ -66,7 +66,7 @@
|
||||
<string name="invite_your_friends_text">Invite your friends to get discount\n on EMI rates</string>
|
||||
<string name="create_profile">Create Your Profile</string>
|
||||
<string name="email_id">Email ID</string>
|
||||
<string name="as_per_pan_card">(As per PAN card)</string>
|
||||
<string name="as_per_pan">(As per PAN)</string>
|
||||
<string name="first_name">First name</string>
|
||||
<string name="last_name">Last name</string>
|
||||
<string name="date_of_birth">Date of Birth</string>
|
||||
@@ -424,4 +424,5 @@
|
||||
<string name="use_camera">Use Camera</string>
|
||||
<string name="take_aadhaar_card_photo">Take Aadhaar card photo</string>
|
||||
<string name="recommended">Recommended</string>
|
||||
<string name="first_last_name">First & Last name</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user