Merge pull request #1644 from medici/amc/strings

AMC KYC hardcode strings cleanup
This commit is contained in:
rahul bhat
2021-10-13 13:34:03 +05:30
committed by GitHub Enterprise
37 changed files with 358 additions and 205 deletions

View File

@@ -1,11 +1,11 @@
package com.navi.amc.investorapp.common.customview
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.annotation.ColorInt
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
import androidx.databinding.DataBindingUtil
@@ -27,7 +27,7 @@ class TextIconCheckedView(context: Context, attrs: AttributeSet?) :
fun setProperties(
title: String? = null,
iconCode: String? = null,
bgCode: String? = null
@ColorInt bgCode: Int? = null
) {
title?.let {
binding.titleTv.visibility = View.VISIBLE
@@ -44,7 +44,7 @@ class TextIconCheckedView(context: Context, attrs: AttributeSet?) :
bgCode?.let {
val shape = GradientDrawable()
shape.cornerRadius = dpToPx(8).toFloat()
shape.setColor(Color.parseColor(it))
shape.setColor(bgCode)
binding.iconIv.background = shape
}
}

View File

@@ -48,6 +48,9 @@ object Constant {
const val CONGRATULATION = "CONGRATULATION"
const val STATE = "STATE"
const val FAILED = "FAILED"
const val SUCCESSFUL = "SUCCESSFUL"
const val VERIFIED = "VERIFIED"
const val KYC_SUBMITTED = "KYC_SUBMITTED"
const val IS_FRONT_VIEW = "IS_FRONT_VIEW"
const val IS_FROM_NON_KYC = "IS_FROM_NON_KYC"
const val ADDRESS_PROOF_TYPE = "ADDRESS_PROOF_TYPE"
@@ -76,5 +79,17 @@ object Constant {
const val V_RESOLUTION = 700 * 1000 * 8
const val V_DURATION = 10000
const val V_SIZE = 9000000
const val PROOF_OF_ADDRESS_FRONT_UPLOAD = "PROOF_OF_ADDRESS_FRONT_UPLOAD"
const val PROOF_OF_ADDRESS_BACK_UPLOAD = "PROOF_OF_ADDRESS_BACK_UPLOAD"
const val VIDEO_UPLOAD = "VIDEO_UPLOAD"
const val PAN_UPLOAD = "PAN_UPLOAD"
const val USER_PHOTO_UPLOAD = "USER_PHOTO_UPLOAD"
const val SIGNATURE_UPLOAD = "SIGNATURE_UPLOAD"
const val MULTIPART_FORM_DATA = "multipart/form-data"
const val SINGLE = "single"
const val MARRIED = "married"
const val OTHER = "other"
const val MALE = "male"
const val FEMALE = "female"
}

View File

@@ -181,10 +181,10 @@ class KycActivity : BaseActivity<ActivityKycBinding, KycVM>(), HeaderInteraction
val commonBottomSheet =
CommonBottomSheet.getInstance(
data = GenericResponse(
message = "As per SEBI, it is mandatory to verify\nKYC to start investing in india.",
message = getString(R.string.as_per_sebi_mandatory_to_verify),
iconCode = IconUtils.ICON_COMPLETE_KYC,
primaryActionTitle = "Later",
secondaryActionTitle = "Complete KYC"
primaryActionTitle = getString(R.string.later),
secondaryActionTitle = getString(R.string.complete_kyc)
),
primaryAction = primaryAction
)

View File

@@ -16,6 +16,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.FAILED
import com.navi.amc.investorapp.constants.Constant.SUCCESSFUL
import com.navi.amc.investorapp.constants.EXTRA_URL
import com.navi.amc.investorapp.databinding.ActivityKycWebViewBinding
import com.navi.amc.investorapp.extension.gotoFinish
@@ -38,6 +40,7 @@ class KycWebViewActivity : AppCompatActivity() {
const val JAVA_SCRIPT_INTERFACE = "JAVA_SCRIPT_INTERFACE"
const val JAVA_SCRIPT_NAME = "JAVA_SCRIPT_NAME"
const val JAVA_SCRIPT_NAME_DEFAULT = "NaviJavaScript"
const val AGENT = "Mozilla/5.0 (Android; Tablet; rv:20.0) Gecko/20.0 Firefox/20.0"
}
@SuppressLint("SetJavaScriptEnabled")
@@ -54,8 +57,7 @@ class KycWebViewActivity : AppCompatActivity() {
webSettings.useWideViewPort = true
webSettings.loadsImagesAutomatically = true
webSettings.builtInZoomControls = false
webSettings.userAgentString =
"Mozilla/5.0 (Android; Tablet; rv:20.0) Gecko/20.0 Firefox/20.0"
webSettings.userAgentString = AGENT
webSettings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
webSettings.mediaPlaybackRequiresUserGesture = false
binding.webView.setLayerType(View.LAYER_TYPE_HARDWARE, null)
@@ -99,12 +101,12 @@ class KycWebViewActivity : AppCompatActivity() {
}
viewModel.kycResponse.observe(this, {
it.let { its ->
if (its.status == "SUCCESSFUL") {
if (SUCCESSFUL.equals(its.status, true)) {
handler.removeCallbacks(runnable)
gotoFinish(Intent(this, KycActivity::class.java).apply {
putExtra(Constant.STATUS, Constant.ADD_NOMINEE)
})
} else if (its.status == "failed") {
} else if (FAILED.equals(its.status, true)) {
handler.removeCallbacks(runnable)
gotoFinish(Intent(this, KycActivity::class.java).apply {
putExtra(Constant.STATUS, Constant.AADHAAR_ESIGN)
@@ -115,7 +117,7 @@ class KycWebViewActivity : AppCompatActivity() {
viewModel.error.observe(this, {
it.let { its ->
handler.removeCallbacks(runnable)
binding.root.showSnackBar("Something went wrong, we will get back to you")
binding.root.showSnackBar(getString(R.string.something_went_wrong_we_will_get_back_to_you))
val intent = Intent(this, KycActivity::class.java).apply {
putExtra(Constant.STATUS, Constant.AADHAAR_ESIGN)
}

View File

@@ -61,8 +61,8 @@ class AadhaarEsignFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Aadhaar eSign",
"Your Aadhaar should be linked to mobile.",
getString(R.string.aadhaar_esight),
getString(R.string.your_aadhaar_should_be_linked_to_mobile),
95,
IconUtils.ICON_ESIGN
)

View File

@@ -71,13 +71,13 @@ class AddressFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Confirm your details",
"Your information is safe with us",
getString(R.string.confirm_your_details),
getString(R.string.your_information_is_safe_with_us),
80,
IconUtils.ICON_GOVT_UPLOAD
)
if (addressProofType == Constant.AADHAAR_CARD) {
binding.idTv.text = "Last 4 Digits of Aadhaar"
binding.idTv.text = getString(R.string.last_four_digits_aadhaar)
binding.issueDateTv.visibility = View.GONE
binding.issueDateEv.visibility = View.GONE
binding.expireTv.visibility = View.GONE
@@ -147,28 +147,28 @@ class AddressFragment :
private fun isValidDetails(): Boolean {
if (binding.addressEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter your address")
binding.root.showSnackBar(getString(R.string.please_enter_your_address))
return false
}
if (binding.cityEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter city's name")
binding.root.showSnackBar(getString(R.string.please_enter_citys_name))
return false
}
if (binding.pincodeEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter your pincode")
binding.root.showSnackBar(getString(R.string.please_enter_your_pincode))
return false
}
if (binding.idEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter your id's number")
binding.root.showSnackBar(getString(R.string.please_enter_your_id_number))
return false
}
if (addressProofType != Constant.AADHAAR_CARD) {
if (binding.issueDateEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter issue date")
binding.root.showSnackBar(getString(R.string.please_enter_issue_date))
return false
}
if (binding.expireEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter expire date")
binding.root.showSnackBar(getString(R.string.please_enter_expire_date))
return false
}
}

View File

@@ -50,23 +50,31 @@ class AddressProofChooseFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Verify Address",
"This is mandatory to submit your KYC details",
getString(R.string.verify_address),
getString(R.string.this_is_mandatory_to_submit_your_kyc_details),
70,
IconUtils.ICON_HOUSE
)
binding.aadhaarView.setProperties(
"Aadhaar\nCard",
getString(R.string.aadhaar_card_newline),
IconUtils.ICON_AADHAAR_FINGER,
"#C3DEB8A3"
resources.getColor(R.color.color_14BC51)
)
binding.passportView.setProperties(
getString(R.string.passport),
IconUtils.ICON_PASSPORT,
resources.getColor(R.color.color_F5D2D8A3)
)
binding.passportView.setProperties("Passport", IconUtils.ICON_PASSPORT, "#F5D2D8A3")
binding.drivingLicenseView.setProperties(
"Driving\nLicence",
getString(R.string.driving_licence_newline),
IconUtils.ICON_DRIVING_LICENCE,
"#CEE5EBA3"
resources.getColor(R.color.color_CEE5EBA3)
)
binding.voterIdView.setProperties(
getString(R.string.voter_id),
IconUtils.ICON_VOTER_ID,
resources.getColor(R.color.color_FFE59EA3)
)
binding.voterIdView.setProperties("Voter ID", IconUtils.ICON_VOTER_ID, "#FFE59EA3")
binding.aadhaarView.setViewBackGround(true)
arguments?.getString(Constant.MESSAGE)?.let {
binding.root.showSnackBar(it)

View File

@@ -11,6 +11,8 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.PROOF_OF_ADDRESS_BACK_UPLOAD
import com.navi.amc.investorapp.constants.Constant.PROOF_OF_ADDRESS_FRONT_UPLOAD
import com.navi.amc.investorapp.databinding.FragmentAddressProofUploadBinding
import com.navi.amc.investorapp.extension.isVisible
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesKeys
@@ -88,27 +90,27 @@ class AddressProofUploadFragment :
if (isFrontView) {
analyticsEventTracker.onPOAFrontSideLand()
progress = 70
binding.titleTv.text = "Scan the front"
binding.subTitleTv.text = "Take a photo of the front of the ID card"
binding.titleTv.text = getString(R.string.scan_the_front)
binding.subTitleTv.text = getString(R.string.take_a_photo_of_the_front_of_the_id_card)
binding.subDocTitleTv.text =
"Front side of ".plus(getAddressProofName(addressProofType))
getString(R.string.front_side_of).plus(getAddressProofName(addressProofType))
} else {
analyticsEventTracker.onPOABackSideLand()
progress = 75
binding.titleTv.text = "Scan the back"
binding.subTitleTv.text = "Take a photo of the back of the ID card"
binding.subDocTitleTv.text = "Back side of ".plus(getAddressProofName(addressProofType))
binding.titleTv.text = getString(R.string.scan_the_back)
binding.subTitleTv.text = getString(R.string.take_a_photo_of_the_back_of_the_id_card)
binding.subDocTitleTv.text = getString(R.string.back_side_of).plus(getAddressProofName(addressProofType))
}
IconUtils.updateIcon(getIconCodeAddressProof(isFrontView, addressProofType), binding.docIv)
headerInteractionListener?.setProperties(
"Upload your ID",
"Your information is safe with us",
getString(R.string.upload_your_id),
getString(R.string.your_information_is_safe_with_us),
progress,
IconUtils.ICON_GOVT_UPLOAD
)
binding.docTitleTv.text =
"Your ".plus(getAddressProofName(addressProofType)).plus(" looks like this")
binding.permissionDeniedView.setTitle("Allow camera permission")
getString(R.string.your).plus(getAddressProofName(addressProofType)).plus(getString(R.string.looks_like_this))
binding.permissionDeniedView.setTitle(getString(R.string.allow_camera_permission))
binding.permissionDeniedView.setBgColor(R.color.white)
initBeforeScreenCapture()
observeCameraImage()
@@ -187,9 +189,9 @@ class AddressProofUploadFragment :
sharedPreferences?.getObject(SharedPreferencesKeys.COMMON_RESPONSE_OBJECT)?.accessToken.toString()
val screen: String
if (isFrontView) {
screen = "PROOF_OF_ADDRESS_FRONT_UPLOAD"
screen = PROOF_OF_ADDRESS_FRONT_UPLOAD
} else {
screen = "PROOF_OF_ADDRESS_BACK_UPLOAD"
screen = PROOF_OF_ADDRESS_BACK_UPLOAD
}
val outputStream = ByteArrayOutputStream()
bitmapImage?.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)

View File

@@ -87,8 +87,8 @@ class BankDetailsFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Bank Details",
"Your information is 100% safe with us",
getString(R.string.bank_details),
getString(R.string.your_information_is_100_safe_with_us),
90,
IconUtils.ICON_BANK
)
@@ -224,9 +224,9 @@ class BankDetailsFragment :
R.id.bank_name_ev -> {
if (binding.bankNameEv.text.toString().isBlank()) {
if (binding.ifscEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter ifsc")
binding.root.showSnackBar(getString(R.string.please_enter_ifsc))
} else {
binding.root.showSnackBar("Please enter valid ifsc")
binding.root.showSnackBar(getString(R.string.please_enter_valid_ifsc))
}
}
}
@@ -235,29 +235,29 @@ class BankDetailsFragment :
private fun isValidDetails(): Boolean {
if (binding.ifscEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter ifsc")
binding.root.showSnackBar(getString(R.string.please_enter_ifsc))
return false
}
if (binding.ifscEv.text.toString().length != 11) {
binding.root.showSnackBar("Please enter valid ifsc")
binding.root.showSnackBar(getString(R.string.please_enter_valid_ifsc))
return false
}
if (binding.bankNameEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter valid ifsc")
binding.root.showSnackBar(getString(R.string.please_enter_valid_ifsc))
return false
}
if (binding.accountNoEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter account number")
binding.root.showSnackBar(getString(R.string.please_enter_account_number))
return false
}
if (binding.verifyAccountNoEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please select verify account number")
binding.root.showSnackBar(getString(R.string.please_select_verify_account_number))
return false
}
if (!binding.accountNoEv.text.toString().trim()
.equals(binding.verifyAccountNoEv.text.toString().trim())
) {
binding.root.showSnackBar("Account number does not match")
binding.root.showSnackBar(getString(R.string.account_number_does_not_match))
return false
}
return true

View File

@@ -11,6 +11,8 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.FAILED
import com.navi.amc.investorapp.constants.Constant.VERIFIED
import com.navi.amc.investorapp.databinding.FragmentKycVerifyingBinding
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesKeys
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesWriter
@@ -63,8 +65,9 @@ class BankVerificationFragment :
get() = BankVerificationVM::class.java
override fun init() {
binding.titleTv.text = "Verifying your bank account."
val spannable = SpannableString("We will be sending Rs 1 to your \n" + "bank account ")
binding.titleTv.text = getString(R.string.verifying_your_bank_account)
val spannable =
SpannableString(getString(R.string.we_will_be_sending_rs_1_to_your_bank_account))
spannable.setSpan(
ForegroundColorSpan(resources.getColor(R.color.black)),
19,
@@ -87,7 +90,7 @@ class BankVerificationFragment :
private fun initObservers() {
viewModel.response.observe(viewLifecycleOwner, {
if (it.status == "VERIFIED") {
if (VERIFIED.equals(it.status, true)) {
if (arguments?.getBoolean(Constant.IS_FROM_NON_KYC).orFalse()) {
analyticsEventTracker.onBankVerified()
} else {
@@ -109,14 +112,14 @@ class BankVerificationFragment :
} else {
fragmentInterchangeListener?.navigateToNextScreen(Constant.AADHAAR_ESIGN)
}
} else if (it.status == "FAILED") {
} else if (FAILED.equals(it.status, true)) {
binding.iconIv.visibility = View.VISIBLE
binding.retryTv.visibility = View.VISIBLE
binding.progress.visibility = View.GONE
countDownTimer?.cancel()
binding.titleTv.text =
"Looks like we were not able to verify\nyour bank account.."
binding.subTitleTv.text = "Check your details again & confirm."
getString(R.string.looks_like_we_were_not_able_to_verify_your_bank_account)
binding.subTitleTv.text = getString(R.string.check_your_details_again_and_confirm)
}
})
}
@@ -124,7 +127,7 @@ class BankVerificationFragment :
override fun onClick(view: View?) {
when (view?.id) {
R.id.retry_tv -> {
if (viewModel.response.value?.status == "FAILED") {
if (FAILED.equals(viewModel.response.value?.status, true)) {
val fragmentTransaction =
requireActivity().supportFragmentManager.beginTransaction()
fragmentTransaction.remove(this)
@@ -153,8 +156,8 @@ class BankVerificationFragment :
binding.iconIv.visibility = View.VISIBLE
binding.retryTv.visibility = View.VISIBLE
binding.progress.visibility = View.GONE
binding.titleTv.text = "This is taking too long to verify"
binding.subTitleTv.text = "Please try again"
binding.titleTv.text = getString(R.string.this_is_taking_too_long_to_verify)
binding.subTitleTv.text = getString(R.string.please_try_again)
}
}
}

View File

@@ -7,6 +7,7 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.EMPLOYMENT_DETAILS
import com.navi.amc.investorapp.databinding.FragmentEmploymentDetailsBinding
import com.navi.amc.investorapp.extension.showMenu
import com.navi.amc.investorapp.extension.showSnackBar
@@ -66,8 +67,8 @@ class EmploymentDetailFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Employment Details",
"This is mandatory as per SEBI guidelines",
getString(R.string.employment_details),
getString(R.string.this_is_mandatory_as_per_sebi_guidelines),
25,
IconUtils.ICON_EMPLOYMENT
)
@@ -103,7 +104,7 @@ class EmploymentDetailFragment :
politicallyExposed = !binding.politicallyExposed.isChecked,
citizenBornLivingInIndia = binding.indianCitizen.isChecked
)
viewModel.submitData(accessToken, "EMPLOYMENT_DETAILS", personalDetails)
viewModel.submitData(accessToken, EMPLOYMENT_DETAILS, personalDetails)
}
}
R.id.tax_tv, R.id.politically_exposed, R.id.indian_citizen-> {
@@ -162,15 +163,15 @@ class EmploymentDetailFragment :
private fun isValidDetails(): Boolean {
if (binding.sourceIncomeTv.text.toString().isBlank()) {
binding.root.showSnackBar("Please select source of income")
binding.root.showSnackBar(getString(R.string.please_select_source_of_income))
return false
}
if (binding.occupationTv.text.toString().isBlank()) {
binding.root.showSnackBar("Please select occupation")
binding.root.showSnackBar(getString(R.string.please_select_occupation))
return false
}
if (binding.incomeTv.text.toString().isBlank()) {
binding.root.showSnackBar("Please select annual income")
binding.root.showSnackBar(getString(R.string.please_select_annual_income))
return false
}
if (!binding.politicallyExposed.isChecked || !binding.indianCitizen.isChecked || !binding.taxTv.isChecked) {

View File

@@ -10,6 +10,7 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.KYC_SUBMITTED
import com.navi.amc.investorapp.databinding.FragmentNominessBinding
import com.navi.amc.investorapp.extension.hideKeyboard
import com.navi.amc.investorapp.extension.showMenu
@@ -71,13 +72,13 @@ class NomineeFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Add Nominee",
"Assign nominees for funds",
getString(R.string.add_nominee),
getString(R.string.assign_nominee_for_funds),
100,
IconUtils.ICON_NOMINEE
)
binding.yesView.setProperties("Yes")
binding.noView.setProperties("No")
binding.yesView.setProperties(getString(R.string.yes))
binding.noView.setProperties(getString(R.string.no))
binding.yesView.titleCentric()
binding.noView.titleCentric()
binding.noView.setViewBackGround(true)
@@ -112,11 +113,11 @@ class NomineeFragment :
}
})
viewModel.kycStatus.observe(viewLifecycleOwner, {
if (it.status == "KYC_SUBMITTED") {
if (KYC_SUBMITTED.equals(it.status, true)) {
fragmentInterchangeListener?.navigateToNextScreen(
Constant.CONGRATULATION, arguments ?: Bundle())
} else {
binding.root.showSnackBar("Please check it again")
binding.root.showSnackBar(getString(R.string.please_check_it_agin))
}
})
}
@@ -187,15 +188,15 @@ class NomineeFragment :
if (binding.noView.isItemSelected())
return true
if (binding.nomineeNameEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter name of nominee")
binding.root.showSnackBar(getString(R.string.please_enter_name_of_nominee))
return false
}
if (binding.dateEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please select dob")
binding.root.showSnackBar(getString(R.string.please_select_dob))
return false
}
if (binding.relationshipEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please select relationship")
binding.root.showSnackBar(getString(R.string.please_select_releationship))
return false
}
return true

View File

@@ -11,6 +11,7 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.PAN_UPLOAD
import com.navi.amc.investorapp.databinding.FragmentPanBinding
import com.navi.amc.investorapp.extension.isVisible
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesKeys
@@ -80,12 +81,12 @@ class PanFragment : BaseFragment<FragmentPanBinding, PanVM>(), View.OnClickListe
override fun init() {
headerInteractionListener?.setProperties(
"Add your PAN",
"PAN is mandatory for investing",
getString(R.string.add_your_pan),
getString(R.string.pan_is_mandatory_for_investing),
35,
IconUtils.ICON_PAN
)
binding.permissionDeniedView.setTitle("Allow camera permission")
binding.permissionDeniedView.setTitle(getString(R.string.allow_camera_permission))
binding.permissionDeniedView.setBgColor(R.color.white)
initBeforeScreenCapture()
observeCameraImage()
@@ -167,7 +168,7 @@ class PanFragment : BaseFragment<FragmentPanBinding, PanVM>(), View.OnClickListe
sharedPreferences?.getObject(SharedPreferencesKeys.COMMON_RESPONSE_OBJECT)?.accessToken.toString()
val outputStream = ByteArrayOutputStream()
bitmapImage?.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)
viewModel.submitData(accessToken, "PAN_UPLOAD", outputStream.toByteArray())
viewModel.submitData(accessToken, PAN_UPLOAD, outputStream.toByteArray())
}
private fun openCamera() {

View File

@@ -13,6 +13,7 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.PERSONAL_DETAILS
import com.navi.amc.investorapp.databinding.FragmentPersonalDetailsBinding
import com.navi.amc.investorapp.extension.hideKeyboard
import com.navi.amc.investorapp.extension.isValidEmail
@@ -85,19 +86,19 @@ class PersonalDetailFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Personal Details",
"This is mandatory as per SEBI guidelines",
getString(R.string.personal_details),
getString(R.string.this_is_mandatory_as_per_sebi_guidelines),
20,
IconUtils.ICON_CHAT
)
binding.permissionDeniedView.setTitle("Allow location permission")
binding.permissionDeniedView.setTitle(getString(R.string.allow_camera_permission))
binding.permissionDeniedView.setBgColor(R.color.white)
binding.singleView.setProperties("Single", IconUtils.ICON_SINGLE)
binding.marriedView.setProperties("Married", IconUtils.ICON_MARRIED)
binding.marriedOtherView.setProperties("Other", IconUtils.ICON_OTHER)
binding.maleView.setProperties("Male", IconUtils.ICON_MALE)
binding.femaleView.setProperties("Female", IconUtils.ICON_FEMALE)
binding.otherView.setProperties("Other", IconUtils.ICON_OTHER)
binding.singleView.setProperties(getString(R.string.single), IconUtils.ICON_SINGLE)
binding.marriedView.setProperties(getString(R.string.married), IconUtils.ICON_MARRIED)
binding.marriedOtherView.setProperties(getString(R.string.other), IconUtils.ICON_OTHER)
binding.maleView.setProperties(getString(R.string.male), IconUtils.ICON_MALE)
binding.femaleView.setProperties(getString(R.string.female), IconUtils.ICON_FEMALE)
binding.otherView.setProperties(getString(R.string.other), IconUtils.ICON_OTHER)
binding.singleView.setViewBackGround(true)
binding.femaleView.setViewBackGround(true)
}
@@ -175,7 +176,7 @@ class PersonalDetailFragment :
longitude = locationManager.location.value?.longitude
)
)
viewModel.submitData(accessToken, "PERSONAL_DETAILS", personalDetails)
viewModel.submitData(accessToken, PERSONAL_DETAILS, personalDetails)
}
}
R.id.single_view -> {
@@ -214,29 +215,29 @@ class PersonalDetailFragment :
private fun isValidDetails(): Boolean {
if (binding.emailEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter email ID")
binding.root.showSnackBar(getString(R.string.please_enter_email_id))
return false
}
if (!binding.emailEv.text.toString().isValidEmail) {
binding.root.showSnackBar("Please enter valid email-id")
binding.root.showSnackBar(getString(R.string.please_enter_valid_email_id))
return false
}
if (binding.fatherNameEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter father's name")
binding.root.showSnackBar(getString(R.string.please_enter_father_name))
return false
}
if (binding.yourNameEv.text.toString().isBlank()) {
binding.root.showSnackBar("Please enter your name")
binding.root.showSnackBar(getString(R.string.please_enter_your_name))
return false
}
if (!permissionsManager.hasPermissions(locationPermission)) {
binding.root.showSnackBar("Please give location permission")
binding.root.showSnackBar(getString(R.string.please_give_location_permission))
permissionsManager.requestPermissions(locationPermission)
return false
}
if (locationManager.location.value?.latitude == null || locationManager.location.value?.longitude == null) {
locationManager.requestLocationUpdates(requireActivity())
binding.root.showSnackBar("Please enable location")
binding.root.showSnackBar(getString(R.string.please_enable_location))
return false
}
return true
@@ -244,22 +245,22 @@ class PersonalDetailFragment :
private fun getMaritalStatus(): String {
if (binding.singleView.isItemSelected()) {
return "single"
return Constant.SINGLE
}
if (binding.marriedView.isItemSelected()) {
return "married"
return Constant.MARRIED
}
return "other"
return Constant.OTHER
}
private fun getGenderStatus(): String {
if (binding.maleView.isItemSelected()) {
return "male"
return Constant.MALE
}
if (binding.femaleView.isItemSelected()) {
return "female"
return Constant.FEMALE
}
return "other"
return Constant.OTHER
}
private fun isCompleteData(): Boolean {

View File

@@ -11,18 +11,19 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.USER_PHOTO_UPLOAD
import com.navi.amc.investorapp.databinding.FragmentKycSelfieBinding
import com.navi.amc.investorapp.extension.isVisible
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesKeys
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesWriter
import com.navi.amc.investorapp.ui.kyc.customcamera.CameraActionListener
import com.navi.amc.investorapp.ui.kyc.customcamera.CameraEventListener
import com.navi.amc.investorapp.ui.kyc.customcamera.getCameraCaptureImageBitmap
import com.navi.amc.investorapp.ui.kyc.listeners.FragmentInterchangeListener
import com.navi.amc.investorapp.ui.kyc.listeners.HeaderInteractionListener
import com.navi.amc.investorapp.ui.kyc.viewmodel.KycVM
import com.navi.amc.investorapp.ui.kyc.viewmodel.SelfieVM
import com.navi.amc.investorapp.util.*
import com.navi.amc.investorapp.ui.kyc.customcamera.CameraActionListener
import com.navi.amc.investorapp.ui.kyc.customcamera.CameraEventListener
import com.navi.amc.investorapp.ui.kyc.customcamera.getCameraCaptureImageBitmap
import com.otaliastudios.cameraview.CameraException
import com.otaliastudios.cameraview.PictureResult
import com.otaliastudios.cameraview.controls.Preview
@@ -73,12 +74,12 @@ class SelfieFragment : BaseFragment<FragmentKycSelfieBinding, SelfieVM>(), View.
override fun init() {
headerInteractionListener?.setProperties(
"Take a Selfie",
"Your photo is needed to verify your identity",
getString(R.string.take_your_selfie),
getString(R.string.your_photo_is_needed_to_verify_your_identity),
50,
IconUtils.ICON_CAMERA
)
binding.permissionDeniedView.setTitle("Allow camera permission")
binding.permissionDeniedView.setTitle(getString(R.string.allow_camera_permission))
binding.permissionDeniedView.setBgColor(R.color.white)
initBeforeScreenCapture()
observeCameraImage()
@@ -141,7 +142,7 @@ class SelfieFragment : BaseFragment<FragmentKycSelfieBinding, SelfieVM>(), View.
sharedPreferences?.getObject(SharedPreferencesKeys.COMMON_RESPONSE_OBJECT)?.accessToken.toString()
val outputStream = ByteArrayOutputStream()
bitmapImage?.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)
viewModel.submitData(accessToken, "USER_PHOTO_UPLOAD", outputStream.toByteArray())
viewModel.submitData(accessToken, USER_PHOTO_UPLOAD, outputStream.toByteArray())
}
private fun openCamera() {

View File

@@ -15,6 +15,7 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.SIGNATURE_UPLOAD
import com.navi.amc.investorapp.databinding.FragmentSignatureBinding
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesKeys
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesWriter
@@ -75,8 +76,8 @@ class SignatureFragment :
override fun init() {
headerInteractionListener?.setProperties(
"Add your signature",
"Your information is safe with us",
getString(R.string.add_your_signature),
getString(R.string.your_information_is_safe_with_us),
85,
IconUtils.ICON_SIGNATURE
)
@@ -85,7 +86,7 @@ class SignatureFragment :
binding.saveTv.visibility = View.GONE
binding.retakeTv.visibility = View.GONE
binding.permissionDeniedView.visibility = View.GONE
binding.permissionDeniedView.setTitle("Allow storage permission")
binding.permissionDeniedView.setTitle(getString(R.string.allow_storage_permission))
binding.permissionDeniedView.setBgColor(R.color.white)
isPermissionAlready = permissionsManager.hasPermissions(storagePermission)
if (!isPermissionAlready) {
@@ -136,7 +137,7 @@ class SignatureFragment :
sharedPreferences?.getObject(SharedPreferencesKeys.COMMON_RESPONSE_OBJECT)?.accessToken.toString()
val outputStream = ByteArrayOutputStream()
bitmapImage?.compress(Bitmap.CompressFormat.JPEG, 70, outputStream)
viewModel.submitData(accessToken, "SIGNATURE_UPLOAD", outputStream.toByteArray())
viewModel.submitData(accessToken, SIGNATURE_UPLOAD, outputStream.toByteArray())
}
R.id.retake_tv, R.id.upload_iv, R.id.upload_title_tv -> {
if (permissionsManager.hasPermissions(storagePermission)

View File

@@ -78,12 +78,12 @@ class VideoFragment : BaseFragment<FragmentKycVideoBinding, VideoVM>(), View.OnC
override fun init() {
headerInteractionListener?.setProperties(
"Make a Video",
"Your video is needed to verify your identity",
getString(R.string.make_a_video),
getString(R.string.your_photo_is_needed_to_verify_your_identity),
60,
IconUtils.ICON_VIDEO
)
binding.permissionDeniedView.setTitle("Allow camera permission")
binding.permissionDeniedView.setTitle(getString(R.string.allow_camera_permission))
binding.permissionDeniedView.setBgColor(R.color.white)
initBeforeScreenCapture()
isPermissionAlready = permissionsManager.hasPermissions(cameraPermission)
@@ -206,11 +206,11 @@ class VideoFragment : BaseFragment<FragmentKycVideoBinding, VideoVM>(), View.OnC
val videoOTPBottomSheet =
VideoOTPBottomSheet.getInstance(
data = GenericResponse(
title = "Make sure you make a video\nfor 5 Seconds ",
message = "Say out load & Record",
title = getString(R.string.make_sure_you_make_a_video_for_5_second),
message = getString(R.string.say_out_load_record),
iconCode = IconUtils.ICON_LOUD_SPEAKER,
otp = otp,
primaryActionTitle = "Continue"
primaryActionTitle = getString(R.string.continue_)
)
)
if (requireActivity() is KycActivity) {

View File

@@ -9,6 +9,8 @@ import com.navi.amc.investorapp.R
import com.navi.amc.investorapp.base.BaseFragment
import com.navi.amc.investorapp.constants.AnalyticsConstant
import com.navi.amc.investorapp.constants.Constant
import com.navi.amc.investorapp.constants.Constant.MULTIPART_FORM_DATA
import com.navi.amc.investorapp.constants.Constant.VIDEO_UPLOAD
import com.navi.amc.investorapp.databinding.FragmentKycVideoPreviewBinding
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesKeys
import com.navi.amc.investorapp.sharedpreference.SharedPreferencesWriter
@@ -60,8 +62,8 @@ class VideoPreviewFragment : BaseFragment<FragmentKycVideoPreviewBinding, VideoV
override fun init() {
headerInteractionListener?.setProperties(
"Make a Video",
"Your photo is needed to verify your identity",
getString(R.string.make_a_video),
getString(R.string.your_photo_is_needed_to_verify_your_identity),
60,
IconUtils.ICON_VIDEO
)
@@ -88,10 +90,12 @@ class VideoPreviewFragment : BaseFragment<FragmentKycVideoPreviewBinding, VideoV
private fun saveButtonClick() {
val file = File(videoRecordingPath)
val requestBody = RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
val requestBody = RequestBody.create(MULTIPART_FORM_DATA.toMediaTypeOrNull(), file)
val multipartBody = MultipartBody.Part.createFormData("file", file.name, requestBody)
val accessToken = sharedPreferences?.getObject(SharedPreferencesKeys.COMMON_RESPONSE_OBJECT)!!.accessToken ?: ""
viewModel.submitData(accessToken, "VIDEO_UPLOAD", multipartBody)
val accessToken =
sharedPreferences?.getObject(SharedPreferencesKeys.COMMON_RESPONSE_OBJECT)!!.accessToken
?: ""
viewModel.submitData(accessToken, VIDEO_UPLOAD, multipartBody)
}
private val sharedPreferences by lazy {

View File

@@ -100,7 +100,7 @@ fun getMultipartBody(
fileName: String,
name: String = "file"
): MultipartBody.Part {
val reqFile = bytes.toRequestBody("multipart/form-data".toMediaTypeOrNull(), 0, bytes.size)
val reqFile = bytes.toRequestBody(Constant.MULTIPART_FORM_DATA.toMediaTypeOrNull(), 0, bytes.size)
return MultipartBody.Part.createFormData(name, fileName, reqFile)
}

View File

@@ -134,7 +134,7 @@
android:layout_marginTop="@dimen/_48dp"
android:background="@drawable/bg_rectangle_black_outline_white_bg"
android:gravity="center"
android:text="Continue"
android:text="@string/continuee"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/six_otp_tv" />

View File

@@ -22,7 +22,7 @@
style="@style/tv_style1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Why is eSign needed?"
android:text="@string/why_is_esign_needed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -32,7 +32,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_16dp"
android:text="Aadhaar eSign digitally signs your documents needed for KYC and account opening on Navi"
android:text="@string/aadhaar_esign_digitally_signs_your_documents_needed_for_kyc_and_account_opening_on_navi"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_tv" />
@@ -51,7 +51,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_8dp"
android:layout_marginTop="@dimen/_34dp"
android:text="Your data is 100% safe and secure"
android:text="@string/your_data_is_100_safe_and_secure"
app:layout_constraintStart_toEndOf="@+id/icon_iv"
app:layout_constraintTop_toBottomOf="@+id/sub_title_tv" />
@@ -65,7 +65,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_4dp"
android:gravity="center"
android:text="Proceed to Aadhaar Esign"
android:text="@string/proceed_to_aadhaar_esign"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />

View File

@@ -28,7 +28,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_32dp"
android:text="Your Address"
android:text="@string/your_address"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -39,7 +39,7 @@
android:layout_height="112dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="start"
android:hint="Your Address"
android:hint="@string/your_address"
android:imeOptions="actionNext"
android:singleLine="true"
app:layout_constraintStart_toStartOf="parent"
@@ -51,7 +51,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="City"
android:text="@string/city"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/address_ev" />
@@ -63,7 +63,7 @@
android:layout_marginTop="@dimen/_8dp"
android:layout_marginEnd="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="City"
android:hint="@string/city"
android:imeOptions="actionNext"
android:singleLine="true"
app:layout_constraintEnd_toStartOf="@+id/pincode_ev"
@@ -76,7 +76,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Pincode"
android:text="@string/pincode"
app:layout_constraintStart_toStartOf="@+id/pincode_ev"
app:layout_constraintTop_toBottomOf="@+id/address_ev" />
@@ -88,7 +88,7 @@
android:layout_marginStart="@dimen/_8dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Pincode"
android:hint="@string/pincode"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLength="6"
@@ -103,7 +103,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="ID number"
android:text="@string/id_number"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pincode_ev" />
@@ -114,7 +114,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Enter your id number"
android:hint="@string/enter_your_id_number"
android:imeOptions="actionNext"
android:singleLine="true"
app:layout_constraintStart_toStartOf="parent"
@@ -126,7 +126,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Issue date"
android:text="@string/issue_date"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/id_ev" />
@@ -155,7 +155,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Expiry date"
android:text="@string/expiry_date"
app:layout_constraintStart_toStartOf="@+id/expire_ev"
app:layout_constraintTop_toBottomOf="@+id/id_ev" />
@@ -190,7 +190,7 @@
android:layout_marginTop="@dimen/_4dp"
android:alpha="0.5"
android:gravity="center"
android:text="Save" />
android:text="@string/save" />
</LinearLayout>
</layout>

View File

@@ -13,7 +13,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20dp"
android:text="Select document"
android:text="@string/select_document"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@@ -31,7 +31,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20dp"
android:text="Scan the front"
android:text="@string/scan_the_front"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -41,7 +41,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_8dp"
android:text="Take a photo of the front of the ID card"
android:text="@string/take_a_photo_of_the_front_of_the_id_card"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_tv" />
@@ -107,7 +107,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_16dp"
android:text="Your Id card looks like this"
android:text="@string/your_id_card_looks_like_this"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/camera_capture_iv" />
@@ -153,7 +153,7 @@
android:layout_marginEnd="@dimen/_8dp"
android:background="@drawable/bg_rectangle_black_outline_white_bg"
android:gravity="center"
android:text="Retake photo"
android:text="@string/retake_photo"
app:layout_constraintEnd_toStartOf="@+id/save_tv"
app:layout_constraintStart_toStartOf="parent" />
@@ -164,7 +164,7 @@
android:layout_height="match_parent"
android:layout_marginStart="@dimen/_8dp"
android:gravity="center"
android:text="Save"
android:text="@string/save"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/retake_tv" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -29,7 +29,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_36dp"
android:text="IFSC code" />
android:text="@string/ifsc_code" />
<EditText
android:id="@+id/ifsc_ev"
@@ -39,7 +39,7 @@
android:layout_marginTop="@dimen/_8dp"
android:ems="10"
android:gravity="center_vertical"
android:hint="ICIC0005267"
android:hint="@string/icic0005267"
android:imeOptions="actionNext"
android:inputType="textCapCharacters"
android:maxLength="11"
@@ -51,7 +51,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Bank Name" />
android:text="@string/bank_name" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bank_name_ev"
@@ -60,7 +60,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Select your bank" />
android:hint="@string/select_your_bank" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/account_no_tv"
@@ -68,7 +68,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Account number" />
android:text="@string/account_number" />
<EditText
android:id="@+id/account_no_ev"
@@ -77,7 +77,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Enter your account number"
android:hint="@string/enter_your_account_number"
android:imeOptions="actionNext"
android:inputType="numberPassword"
android:singleLine="true" />
@@ -88,7 +88,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Verify Account Number" />
android:text="@string/verify_account_number" />
<EditText
android:id="@+id/verify_account_no_ev"
@@ -97,7 +97,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Re-enter your account number"
android:hint="@string/re_enter_your_account_number"
android:imeOptions="flagNoEnterAction"
android:inputType="number"
android:singleLine="true"/>

View File

@@ -28,7 +28,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_36dp"
android:text="What is your source of income?"
android:text="@string/what_is_your_source_of_income"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -39,7 +39,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Choose the source"
android:hint="@string/choose_the_source"
app:drawableEndCompat="@drawable/ic_drop_down_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/source_income_title_tv" />
@@ -50,7 +50,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="What is your occupation"
android:text="@string/what_is_your_occupation"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/source_income_tv" />
@@ -61,7 +61,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Choose the occupation"
android:hint="@string/choose_the_occupation"
app:drawableEndCompat="@drawable/ic_drop_down_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/occupation_title_tv" />
@@ -72,7 +72,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="What is your annual income?"
android:text="@string/what_is_your_annual_income"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/occupation_tv" />
@@ -83,7 +83,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Choose the income"
android:hint="@string/choose_the_income"
app:drawableEndCompat="@drawable/ic_drop_down_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/income_title_tv" />

View File

@@ -26,7 +26,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:gravity="center"
android:text="Congratulations!!!"
android:text="@string/congratulations_"
app:layout_constraintBottom_toTopOf="@+id/sub_title_tv"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
@@ -40,7 +40,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_16dp"
android:gravity="center"
android:text="Your account creation is successful.\nStart investing now."
android:text="@string/your_account_creation_is_successful_nstart_investing_now"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"

View File

@@ -84,7 +84,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_16dp"
android:text="Tips for great selfie"
android:text="@string/tips_for_great_selfie"
android:textColor="#000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/camera_capture_iv" />
@@ -132,7 +132,7 @@
android:layout_marginEnd="@dimen/_8dp"
android:background="@drawable/bg_rectangle_black_outline_white_bg"
android:gravity="center"
android:text="Retake photo"
android:text="@string/retake_photo"
app:layout_constraintEnd_toStartOf="@+id/save_tv"
app:layout_constraintStart_toStartOf="parent" />
@@ -143,7 +143,7 @@
android:layout_height="match_parent"
android:layout_marginStart="@dimen/_8dp"
android:gravity="center"
android:text="Save"
android:text="@string/save"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/retake_tv" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -37,7 +37,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:gravity="center"
android:text="Looks like we were not able to verify\nyour bank account.."
android:text="@string/looks_like_we_were_not_able_to_verify_nyour_bank_account"
app:layout_constraintBottom_toTopOf="@+id/sub_title_tv"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
@@ -51,7 +51,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_16dp"
android:gravity="center"
android:text="We will be sending Rs 1 to your\nbank account"
android:text="@string/we_will_be_sending_rs_1_to_your_bank_account"
app:layout_constraintBottom_toTopOf="@+id/retry_tv"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
@@ -69,7 +69,7 @@
android:gravity="center"
android:paddingStart="@dimen/_60dp"
android:paddingRight="@dimen/_60dp"
android:text="Retry"
android:text="@string/retry"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -60,7 +60,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Speak the digits below while recording"
android:text="@string/speak_the_digits_below_while_recording"
android:textColor="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -151,7 +151,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_66dp"
android:text="Tips for great video"
android:text="@string/tips_for_great_video"
android:textColor="#000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/camera" />

View File

@@ -59,7 +59,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_32dp"
android:text="Tips for great video"
android:text="@string/tips_for_great_video"
android:textColor="#000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/photo_iv" />
@@ -108,7 +108,7 @@
android:layout_marginEnd="@dimen/_8dp"
android:background="@drawable/bg_rectangle_black_outline_white_bg"
android:gravity="center"
android:text="Retake video"
android:text="@string/retake_video"
app:layout_constraintEnd_toStartOf="@+id/save_tv"
app:layout_constraintStart_toStartOf="parent" />
@@ -119,7 +119,7 @@
android:layout_height="match_parent"
android:layout_marginStart="@dimen/_8dp"
android:gravity="center"
android:text="Save"
android:text="@string/save"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/retake_tv" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -28,7 +28,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_36dp"
android:text="Do you wish to add nominee?"
android:text="@string/do_you_wish_to_add_nominee"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -55,7 +55,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Nominee Name"
android:text="@string/nominee_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/yes_view" />
@@ -66,7 +66,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Enter nominee name"
android:hint="@string/enter_nominee_name"
android:imeOptions="flagNoEnterAction"
android:singleLine="true"
app:layout_constraintStart_toStartOf="parent"
@@ -78,7 +78,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Date of birth"
android:text="@string/date_of_birth"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nominee_name_ev" />
@@ -105,7 +105,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Relationship"
android:text="@string/relationship"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/date_ev" />
@@ -116,7 +116,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Select your relationship"
android:hint="@string/select_your_relationship"
app:drawableEndCompat="@drawable/ic_drop_down_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/relationship_tv" />

View File

@@ -13,7 +13,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20dp"
android:text="Scan the front"
android:text="@string/scan_the_front"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -23,7 +23,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_8dp"
android:text="Take a photo of the front of the PAN card"
android:text="@string/take_a_photo_of_the_front_of_the_pan_card"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_tv" />
@@ -92,7 +92,7 @@
android:layout_marginEnd="@dimen/_8dp"
android:background="@drawable/bg_rectangle_black_outline_white_bg"
android:gravity="center"
android:text="Retake photo"
android:text="@string/retake_photo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/save_tv"
app:layout_constraintStart_toStartOf="parent" />
@@ -105,7 +105,7 @@
android:layout_marginStart="@dimen/_8dp"
android:layout_marginTop="@dimen/_4dp"
android:gravity="center"
android:text="Save"
android:text="@string/save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/retake_tv" />

View File

@@ -28,7 +28,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_36dp"
android:text="Are you married?"
android:text="@string/are_you_married"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -64,7 +64,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Whats your gender?"
android:text="@string/what_s_your_gender"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/single_view" />
@@ -100,7 +100,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Your name"
android:text="@string/your_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/other_view" />
@@ -111,7 +111,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Enter your name"
android:hint="@string/enter_your_name"
android:imeOptions="actionNext"
android:singleLine="true"
app:layout_constraintStart_toStartOf="parent"
@@ -123,7 +123,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Fathers name"
android:text="@string/father_s_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/your_name_ev" />
@@ -134,7 +134,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Enter your fathers name"
android:hint="@string/enter_your_father_s_name"
android:imeOptions="actionNext"
android:singleLine="true"
app:layout_constraintStart_toStartOf="parent"
@@ -146,7 +146,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24dp"
android:text="Enter your email-id"
android:text="@string/enter_your_email_id"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/father_name_ev" />
@@ -157,7 +157,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginTop="@dimen/_8dp"
android:gravity="center_vertical"
android:hint="Email ID"
android:hint="@string/email_id"
android:imeOptions="flagNoEnterAction"
android:singleLine="true"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -14,7 +14,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20dp"
android:text="Upload your signature"
android:text="@string/upload_your_signature"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -24,7 +24,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_8dp"
android:text="Ensure the photo has white background"
android:text="@string/ensure_the_photo_has_white_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_tv" />
@@ -58,7 +58,7 @@
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/_4dp"
android:layout_height="wrap_content"
android:text="Upload Signature"
android:text="@string/upload_signature"
app:layout_constraintBottom_toBottomOf="@+id/doc_iv"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -72,7 +72,7 @@
android:layout_marginEnd="@dimen/_8dp"
android:background="@drawable/bg_rectangle_black_outline_white_bg"
android:gravity="center"
android:text="Upload again"
android:text="@string/upload_again"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/save_tv"
app:layout_constraintStart_toStartOf="parent" />
@@ -84,7 +84,7 @@
android:layout_height="@dimen/_48dp"
android:layout_marginStart="@dimen/_8dp"
android:gravity="center"
android:text="Continue"
android:text="@string/continuee"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/retake_tv" />

View File

@@ -23,6 +23,10 @@
<color name="color_transparent">#99000000</color>
<color name="color_E5E5E5">#E5E5E5</color>
<color name="color_392D40">#392D40</color>
<color name="color_C3DEB8A3">#C3DEB8A3</color>
<color name="color_F5D2D8A3">#F5D2D8A3</color>
<color name="color_CEE5EBA3">#CEE5EBA3</color>
<color name="color_FFE59EA3">#FFE59EA3</color>
<color name="color_4CAF50">#4CAF50</color>
<color name="color_FFF6DC">#FFF6DC</color>
<color name="color_E4E4E4">#E4E4E4</color>

View File

@@ -98,12 +98,7 @@
<string name="enter_your_a_full_name">Enter your a Full Name</string>
<string name="please_verify_your_pan_card_details">Please Verify Your Pan Card Details.</string>
<string name="tell_us_more_about_you">Tell us more about you!</string>
<string name="date_of_birth">Date of birth</string>
<string name="gender">Gender</string>
<string name="male">Male</string>
<string name="female">Female</string>
<string name="single">Single</string>
<string name="married">Married</string>
<string name="prefer_not_to_say">Prefer not to say</string>
<string name="what_do_you_do">What do you do?</string>
<string name="source_of_income">Source of income</string>
@@ -167,7 +162,7 @@
<string name="nominee_name">Nominee Name</string>
<string name="select_relation">Select Relation</string>
<string name="bank_name">Bank name</string>
<string name="bank_name">Bank Name</string>
<string name="icici012">ICICI012</string>
<string name="alert">Alert</string>
@@ -187,7 +182,7 @@
<string name="remove_nominee">Remove nominee</string>
<string name="relationship">Relationship</string>
<string name="dd_mm_yyyy">DD-MM-YYYY</string>
<string name="enter_nominee_name">Enter Nominee Name</string>
<string name="enter_nominee_name">Enter nominee name</string>
<string name="verify">Verify</string>
<string name="otp_resend_in">OTP resend in</string>
<string name="make_payment">Make payment</string>
@@ -320,7 +315,6 @@
<string name="invested">Invested</string>
<string name="current">Current</string>
<string name="add_your_pan">Add your PAN</string>
<string name="your_pan_number">Your PAN</string>
<string name="personal_details">Personal Details</string>
<string name="_2_4">2/4</string>
@@ -435,6 +429,121 @@
<string name="introducing">Introducing</string>
<string name="view_my_investments">View my investments</string>
<string name="please_complete_the_account_setup">Please complete the account setup</string>
<string name="complete_kyc">Complete KYC</string>
<string name="later">Later</string>
<string name="as_per_sebi_mandatory_to_verify">As per SEBI, it is mandatory to verify\nKYC to start investing in india.</string>
<string name="something_went_wrong_we_will_get_back_to_you">Something went wrong, we will get back to you</string>
<string name="aadhaar_esight">Aadhaar eSign</string>
<string name="your_aadhaar_should_be_linked_to_mobile">Your Aadhaar should be linked to mobile.</string>
<string name="confirm_your_details">Confirm your details</string>
<string name="last_four_digits_aadhaar">Last 4 Digits of Aadhaar</string>
<string name="please_enter_your_address">Please enter your address</string>
<string name="please_enter_citys_name">Please enter city\'s name</string>
<string name="please_enter_your_pincode">Please enter your pincode</string>
<string name="please_enter_your_id_number">Please enter your id\'s number</string>
<string name="please_enter_issue_date">Please enter issue date</string>
<string name="please_enter_expire_date">Please enter expire date</string>
<string name="verify_address">Verify Address</string>
<string name="this_is_mandatory_to_submit_your_kyc_details">This is mandatory to submit your KYC details</string>
<string name="aadhaar_card_newline">Aadhaar\nCard</string>
<string name="driving_licence_newline">Driving\nLicence</string>
<string name="passport">Passport</string>
<string name="voter_id">Voter ID</string>
<string name="scan_the_front">Scan the front</string>
<string name="take_a_photo_of_the_front_of_the_id_card">Take a photo of the front of the ID card</string>
<string name="front_side_of">\"Front side of \"</string>
<string name="scan_the_back">Scan the back</string>
<string name="take_a_photo_of_the_back_of_the_id_card">Take a photo of the back of the ID card</string>
<string name="back_side_of">\"Back side of \"</string>
<string name="upload_your_id">Upload your ID</string>
<string name="your">\"Your \"</string>
<string name="looks_like_this">\" looks like this\"</string>
<string name="allow_camera_permission">Allow camera permission</string>
<string name="your_information_is_100_safe_with_us">Your information is 100% safe with us</string>
<string name="please_enter_ifsc">Please enter ifsc</string>
<string name="please_enter_valid_ifsc">Please enter valid ifsc</string>
<string name="please_enter_account_number">Please enter account number</string>
<string name="please_select_verify_account_number">Please select verify account number</string>
<string name="account_number_does_not_match">Account number does not match</string>
<string name="verifying_your_bank_account">Verifying your bank account.</string>
<string name="we_will_be_sending_rs_1_to_your_bank_account">We will be sending Rs 1 to your\nbank account</string>
<string name="please_try_again">Please try again</string>
<string name="this_is_taking_too_long_to_verify">This is taking too long to verify</string>
<string name="check_your_details_again_and_confirm"><![CDATA[Check your details again & confirm.]]></string>
<string name="looks_like_we_were_not_able_to_verify_your_bank_account"><![CDATA[Looks like we were not able to verify\nyour bank account…>]]></string>
<string name="employment_details">Employment Details</string>
<string name="please_select_source_of_income">Please select source of income</string>
<string name="please_select_occupation">Please select occupation</string>
<string name="please_select_annual_income">Please select annual income</string>
<string name="please_check_it_agin">Please check it again</string>
<string name="please_enter_name_of_nominee">Please enter name of nominee</string>
<string name="please_select_dob">Please select dob</string>
<string name="please_select_releationship">Please select relationship</string>
<string name="make_a_video">Make a Video</string>
<string name="your_photo_is_needed_to_verify_your_identity">Your photo is needed to verify your identity</string>
<string name="make_sure_you_make_a_video_for_5_second">"Make sure you make a video\nfor 5 Seconds "</string>
<string name="say_out_load_record"><![CDATA[Say out load & Record]]></string>
<string name="add_your_pan">Add your PAN</string>
<string name="pan_is_mandatory_for_investing">PAN is mandatory for investing</string>
<string name="single">Single</string>
<string name="married">Married</string>
<string name="other">Other</string>
<string name="male">Male</string>
<string name="female">Female</string>
<string name="please_enter_email_id">Please enter email ID</string>
<string name="please_enter_valid_email_id">Please enter valid email-id</string>
<string name="please_enter_father_name">Please enter father\'s name</string>
<string name="please_enter_your_name">Please enter your name</string>
<string name="please_give_location_permission">Please give location permission</string>
<string name="please_enable_location">Please enable location</string>
<string name="take_your_selfie">Take a Selfie</string>
<string name="add_your_signature">Add your signature</string>
<string name="allow_storage_permission">Allow storage permission</string>
<string name="why_is_esign_needed">Why is eSign needed?</string>
<string name="aadhaar_esign_digitally_signs_your_documents_needed_for_kyc_and_account_opening_on_navi">Aadhaar eSign digitally signs your documents needed for KYC and account opening on Navi</string>
<string name="your_data_is_100_safe_and_secure">Your data is 100% safe and secure</string>
<string name="proceed_to_aadhaar_esign">Proceed to Aadhaar Esign</string>
<string name="your_address">Your Address</string>
<string name="city">City</string>
<string name="id_number">ID number</string>
<string name="enter_your_id_number">Enter your id number</string>
<string name="issue_date">Issue date</string>
<string name="expiry_date">Expiry date</string>
<string name="save">Save</string>
<string name="select_document">Select document</string>
<string name="your_id_card_looks_like_this">Your Id card looks like this</string>
<string name="retake_photo">Retake photo</string>
<string name="ifsc_code">IFSC code</string>
<string name="icic0005267">ICIC0005267</string>
<string name="select_your_bank">Select your bank</string>
<string name="enter_your_account_number">Enter your account number</string>
<string name="verify_account_number">Verify Account Number</string>
<string name="re_enter_your_account_number">Re-enter your account number</string>
<string name="retry">Retry</string>
<string name="choose_the_source">Choose the source</string>
<string name="what_is_your_occupation">What is your occupation</string>
<string name="choose_the_occupation">Choose the occupation</string>
<string name="choose_the_income">Choose the income</string>
<string name="your_account_creation_is_successful_nstart_investing_now">Your account creation is successful.\nStart investing now.</string>
<string name="do_you_wish_to_add_nominee">Do you wish to add nominee?</string>
<string name="date_of_birth">Date of birth</string>
<string name="select_your_relationship">Select your relationship</string>
<string name="take_a_photo_of_the_front_of_the_pan_card">Take a photo of the front of the PAN card</string>
<string name="are_you_married">Are you married?</string>
<string name="what_s_your_gender">Whats your gender?</string>
<string name="your_name">Your name</string>
<string name="enter_your_name">Enter your name</string>
<string name="father_s_name">Fathers name</string>
<string name="enter_your_father_s_name">Enter your fathers name</string>
<string name="enter_your_email_id">Enter your email-id</string>
<string name="tips_for_great_selfie">Tips for great selfie</string>
<string name="upload_your_signature">Upload your signature</string>
<string name="ensure_the_photo_has_white_background">Ensure the photo has white background</string>
<string name="upload_signature">Upload Signature</string>
<string name="upload_again">Upload again</string>
<string name="speak_the_digits_below_while_recording">Speak the digits below while recording</string>
<string name="tips_for_great_video">Tips for great video</string>
<string name="retake_video">Retake video</string>
<string-array name="banks_array">
<item>ICICI BANK</item>
<item>HDFC BANK</item>