From 4b1ae0619a874584b9b40f5a3792070adec2aaa2 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 10 Jan 2023 17:48:23 +0530 Subject: [PATCH 1/5] added ckyc api in step two --- .../ui/activity/NiveshFdMainActivity.kt | 59 +------------------ .../ui/fragment/StepTwoNiveshFDFragment.kt | 51 ++++++++++++++++ 2 files changed, 52 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt index 6583c1f..0a4a4a2 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt @@ -179,9 +179,8 @@ class NiveshFdMainActivity : BaseActivity() { when (code) { 200 -> { setViewPager(stepsCount) - checkFDCKYCApi() } - // 650 -> refreshToken() + 650 -> "" else -> { showDialogValidation(this@NiveshFdMainActivity, response.message) } @@ -301,62 +300,6 @@ class NiveshFdMainActivity : BaseActivity() { } - private fun checkFDCKYCApi() { - if (Common.isNetworkAvailable(this@NiveshFdMainActivity)) { - if (getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE?.isNotEmpty()!!) { - val checkFDKYCRequest = CheckFDKYCRequest() - checkFDKYCRequest.Mobile = - getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE - checkFDKYCRequest.DOB = - getDate(getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB!!) - checkFDKYCRequest.PAN = - getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN - checkFDKYCRequest.NiveshClientCode = - getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString() - viewModel.checkFDKYC(checkFDKYCRequest, token, this) - viewModel.getFDKYCMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->${response.data.toString()}") - val getCodeResponse: GetCodeResponse = - Gson().fromJson( - response.data?.toString(), - GetCodeResponse::class.java - ) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - - fdInvestmentDetails.CustomerType = "" - } - // 650 -> refreshToken() - else -> { - showDialogValidation( - this@NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(this@NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - } - - } // set background for selected/ default step private fun setBackground( diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt index c550aa4..d240bb0 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt @@ -31,6 +31,7 @@ import com.nivesh.production.niveshfd.adapter.RecommendedBankListAdapter import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepTwoBinding import com.nivesh.production.niveshfd.model.* import com.nivesh.production.niveshfd.ui.activity.NiveshFdMainActivity +import com.nivesh.production.niveshfd.util.Common import com.nivesh.production.niveshfd.util.Common.Companion.commonErrorAutoCompleteMethod import com.nivesh.production.niveshfd.util.Common.Companion.commonErrorMethod import com.nivesh.production.niveshfd.util.Common.Companion.commonSpinnerErrorMethod @@ -140,6 +141,7 @@ class StepTwoNiveshFDFragment : Fragment() { removeError(binding.tlPanNumber) if (s.toString().trim().length == 10) { panCheckApi() + checkFDCKYCApi() } } }) @@ -715,6 +717,55 @@ class StepTwoNiveshFDFragment : Fragment() { } + private fun checkFDCKYCApi() { + if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE?.isNotEmpty()!! && (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB?.isNotEmpty()!! && binding.edtPANNumber.text.toString().isNotEmpty() && (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE?.isNotEmpty()!!) { + val checkFDKYCRequest = CheckFDKYCRequest() + checkFDKYCRequest.Mobile = binding.edtMobileNumber.text.toString() + checkFDKYCRequest.DOB = binding.edtDOB.text.toString() + checkFDKYCRequest.PAN = binding.edtPANNumber.text.toString() + checkFDKYCRequest.NiveshClientCode = (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString() + (activity as NiveshFdMainActivity).viewModel.checkFDKYC(checkFDKYCRequest, token, activity as NiveshFdMainActivity) + (activity as NiveshFdMainActivity).viewModel.getFDKYCMutableData.observe(this) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->${response.data.toString()}") + val getCodeResponse: GetCodeResponse = + Gson().fromJson( + response.data?.toString(), + GetCodeResponse::class.java + ) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + // fdInvestmentDetails.CustomerType = "" + } + 650 -> "" + else -> { + showDialogValidation( + activity as NiveshFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + showDialogValidation(activity as NiveshFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + is Resource.DataError -> { + + } + } + } + } + } + private fun createFDApi(data: CreateFDRequest) { ProgressUtil.showLoading(activity as NiveshFdMainActivity) (activity as NiveshFdMainActivity).viewModel.createFDApi(data, token, activity as NiveshFdMainActivity) From 25355eedb1ab391e9e8dedde8a4429fdba21e5ff Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 10 Jan 2023 18:13:31 +0530 Subject: [PATCH 2/5] added missing code --- .../production/niveshfd/ui/activity/NiveshFdMainActivity.kt | 3 +++ .../niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt index 0a4a4a2..746215f 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt @@ -134,6 +134,7 @@ class NiveshFdMainActivity : BaseActivity() { is Resource.DataError -> { } + else -> {} } } } @@ -199,6 +200,7 @@ class NiveshFdMainActivity : BaseActivity() { is Resource.DataError -> { } + else -> {} } } } @@ -424,6 +426,7 @@ class NiveshFdMainActivity : BaseActivity() { is Resource.DataError -> { } + else -> {} } } } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt index 7aa9f5f..806f91a 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt @@ -58,16 +58,14 @@ class StepFiveNiveshFDFragment : Fragment() { }else{ if (paymentReQueryResponse.Response.Message.isNotEmpty()) { if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - val arrOfStr: List = - paymentReQueryResponse.Response.Message.split(" ", limit = 2) - binding.tvCongrats.text = arrOfStr[0] + binding.tvCongrats.text = paymentReQueryResponse.Response.Status binding.tvCongrats.setTextColor( ContextCompat.getColor( activity as NiveshFdMainActivity, R.color.red ) ) - binding.tvSuccessMessage.text = arrOfStr[1] + binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message } } binding.tvRetry.visibility = View.VISIBLE From 019205d375043554549d300b5d28e0f23e36abc7 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 10 Jan 2023 19:38:15 +0530 Subject: [PATCH 3/5] added preferenceManager and screen one change --- app/src/main/AndroidManifest.xml | 1 + .../niveshfd/db/PreferenceManager.kt | 137 ++++++++++++++++++ .../niveshfd/interfaces/IPreferenceHelper.kt | 30 ++++ .../niveshfd/model/FDInvestmentDetails.kt | 3 +- .../ui/activity/NiveshFdMainActivity.kt | 6 + .../ui/fragment/StepFiveNiveshFDFragment.kt | 5 +- .../ui/fragment/StepOneNiveshFDFragment.kt | 8 +- .../ui/fragment/StepTwoNiveshFDFragment.kt | 62 -------- .../nivesh/production/niveshfd/util/Common.kt | 86 +++++++++++ .../niveshfd/viewModel/BajajFDViewModel.kt | 21 +-- .../res/layout/fragment_niveshfd_step_one.xml | 9 -- 11 files changed, 278 insertions(+), 90 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/niveshfd/db/PreferenceManager.kt create mode 100644 app/src/main/java/com/nivesh/production/niveshfd/interfaces/IPreferenceHelper.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 42482cc..5c6d61c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + diff --git a/app/src/main/java/com/nivesh/production/niveshfd/db/PreferenceManager.kt b/app/src/main/java/com/nivesh/production/niveshfd/db/PreferenceManager.kt new file mode 100644 index 0000000..c2a7fea --- /dev/null +++ b/app/src/main/java/com/nivesh/production/niveshfd/db/PreferenceManager.kt @@ -0,0 +1,137 @@ +package com.nivesh.production.niveshfd.db + +import android.content.Context +import android.content.SharedPreferences +import com.nivesh.production.niveshfd.interfaces.IPreferenceHelper + +open class PreferenceManager(context: Context) : IPreferenceHelper { + private val preferenceName = "NiveshFDSDK" + private var preferences: SharedPreferences = context.getSharedPreferences(preferenceName, Context.MODE_PRIVATE) + + companion object { + const val KEY_USER_UID = "UserUid" + const val KEY_LOGIN_ROLE = "LoginRole" + const val KEY_SUB_BROKER_CODE = "SubBrokerCode" + const val KEY_LOGIN_PASSWORD = "LOGIN_PASSWORD" + const val KEY_CLIENT_UMS_ID = "UMS_Id" + const val KEY_CLIENT_CODE = "ClientCode" + const val KEY_GET_TOKEN = "GetToken" + const val CLIENT_LANGUAGE = "LANGUAGE" + } + + + override fun getLoginPasswordHash(): String { + return preferences[KEY_LOGIN_PASSWORD] ?: "" + } + + override fun setLoginPasswordHash(appName: String) { + preferences[KEY_LOGIN_PASSWORD] = appName + } + + override fun setUserUid(appName: Int) { + preferences[KEY_USER_UID] = appName + } + + override fun getUserUid(): Int { + return preferences[KEY_USER_UID] ?: -1 + } + + override fun setLoginRole(appName: Int) { + preferences[KEY_LOGIN_ROLE] = appName + } + + override fun getLoginRole(): Int { + return preferences[KEY_LOGIN_ROLE] ?: -1 + } + + + override fun setSubBrokerID(appName: String) { + preferences[KEY_SUB_BROKER_CODE] = appName + } + + override fun getSubBrokerID(): String { + return preferences[KEY_SUB_BROKER_CODE] ?: "" + } + + override fun setClientUmsID(appName: String) { + preferences[KEY_CLIENT_UMS_ID] = appName + } + + override fun getClientUmsID(): String { + return preferences[KEY_CLIENT_UMS_ID] ?: "" + } + + override fun setClientCode(appName: String) { + preferences[KEY_CLIENT_CODE] = appName + } + + override fun getClientCode(): String { + return preferences[KEY_CLIENT_CODE] ?: "" + } + + override fun setToken(appName: String) { + preferences[KEY_GET_TOKEN] = appName + } + + override fun getToken(): String { + return preferences[KEY_GET_TOKEN] ?: "" + } + + override fun setLanguage(appName: String) { + preferences[CLIENT_LANGUAGE] = appName + } + + override fun getLanguage(): String { + return preferences[CLIENT_LANGUAGE] ?: "" + } + + + override fun clearPrefs() { + preferences.edit().clear().apply() + } + +} + + +/** + * SharedPreferences extension function, to listen the edit() and apply() fun calls + * on every SharedPreferences operation. + */ +private inline fun SharedPreferences.edit(operation: (SharedPreferences.Editor) -> Unit) { + val editor = this.edit() + operation(editor) + editor.apply() +} + +/** + * puts a key value pair in shared prefs if doesn't exists, otherwise updates value on given [key] + */ +private operator fun SharedPreferences.set(key: String, value: Any?) { + when (value) { + is String? -> edit { it.putString(key, value) } + is Int -> edit { it.putInt(key, value) } + is Boolean -> edit { it.putBoolean(key, value) } + is Float -> edit { it.putFloat(key, value) } + is Long -> edit { it.putLong(key, value) } + else -> throw UnsupportedOperationException("Not yet implemented") + } +} + +/** + * finds value on given key. + * [T] is the type of value + * @param defaultValue optional default value - will take null for strings, false for bool and -1 for numeric values if [defaultValue] is not specified + */ +private inline operator fun SharedPreferences.get( + key: String, + defaultValue: T? = null +): T? { + return when (T::class) { + String::class -> getString(key, defaultValue as? String) as T? + Int::class -> getInt(key, defaultValue as? Int ?: -1) as T? + Boolean::class -> getBoolean(key, defaultValue as? Boolean ?: false) as T? + Float::class -> getFloat(key, defaultValue as? Float ?: -1f) as T? + Long::class -> getLong(key, defaultValue as? Long ?: -1) as T? + else -> throw UnsupportedOperationException("Not yet implemented") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/interfaces/IPreferenceHelper.kt b/app/src/main/java/com/nivesh/production/niveshfd/interfaces/IPreferenceHelper.kt new file mode 100644 index 0000000..9f86f3c --- /dev/null +++ b/app/src/main/java/com/nivesh/production/niveshfd/interfaces/IPreferenceHelper.kt @@ -0,0 +1,30 @@ +package com.nivesh.production.niveshfd.interfaces + +interface IPreferenceHelper { + + fun getLoginPasswordHash(): String + fun setLoginPasswordHash(appName: String) + + fun getUserUid(): Int + fun setUserUid(appName: Int) + + fun getLoginRole(): Int + fun setLoginRole(appName: Int) + + fun getSubBrokerID(): String + fun setSubBrokerID(appName: String) + + fun getClientUmsID(): String + fun setClientUmsID(appName: String) + + fun getClientCode(): String + fun setClientCode(appName: String) + + fun setToken(appName: String) + fun getToken(): String + + fun setLanguage(appName: String) + fun getLanguage(): String + + fun clearPrefs() +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/model/FDInvestmentDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/model/FDInvestmentDetails.kt index d070554..0035226 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/model/FDInvestmentDetails.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/model/FDInvestmentDetails.kt @@ -13,6 +13,7 @@ data class FDInvestmentDetails( var Provider: String? = null, var Source: String? = null, var Tenure: Int? = 0, - var UniqueId: String? = "" + var UniqueId: String? = "", + var RenewOption : String = "" ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt index 746215f..3722774 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/activity/NiveshFdMainActivity.kt @@ -21,6 +21,7 @@ import com.nivesh.production.niveshfd.adapter.DisableAdapter import com.nivesh.production.niveshfd.adapter.SectionsPagerAdapter import com.nivesh.production.niveshfd.api.ApiClient import com.nivesh.production.niveshfd.databinding.ActivityNiveshFdBinding +import com.nivesh.production.niveshfd.db.PreferenceManager import com.nivesh.production.niveshfd.model.* import com.nivesh.production.niveshfd.repositories.MainRepository import com.nivesh.production.niveshfd.ui.fragment.* @@ -79,6 +80,11 @@ class NiveshFdMainActivity : BaseActivity() { setContentView(this.root) } + // For Set Data + PreferenceManager( this@NiveshFdMainActivity).setSubBrokerID("") + // For Get Data + PreferenceManager(context = this@NiveshFdMainActivity).getSubBrokerID() + loginRole = 5 if (Common.isNetworkAvailable(this)) { getStepsCountApi() diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt index 806f91a..e82ee62 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFiveNiveshFDFragment.kt @@ -55,6 +55,8 @@ class StepFiveNiveshFDFragment : Fragment() { ) binding.tvSuccessMessage.text = arrOfStr[1] } + finalizeFDApi() + finalizeKYCApi() }else{ if (paymentReQueryResponse.Response.Message.isNotEmpty()) { if (paymentReQueryResponse.Response.Message.isNotEmpty()) { @@ -71,8 +73,7 @@ class StepFiveNiveshFDFragment : Fragment() { binding.tvRetry.visibility = View.VISIBLE binding.btnViewOrder.visibility = View.GONE } - finalizeFDApi() - finalizeKYCApi() + } private fun finalizeFDApi() { diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt index 830326f..a897699 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt @@ -109,10 +109,15 @@ class StepOneNiveshFDFragment : Fragment() { } // Maturity Options - rgMaturity.text = getString(R.string.additionalDetailOne) + rgMaturity.text = "Total" binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> rgMaturity = group.findViewById(checkedId) Log.e("Maturity", "-->" + rgMaturity.text) + if (rgMaturity.text.contains("credit")){ + rgMaturity.text = "Total" + }else{ + rgMaturity.text = "Principal" + } } // Next Button @@ -146,6 +151,7 @@ class StepOneNiveshFDFragment : Fragment() { (activity as NiveshFdMainActivity).fdInvestmentDetails.CKYCNumber = "" (activity as NiveshFdMainActivity).fdInvestmentDetails.UniqueId = (activity as NiveshFdMainActivity).uniqueId + (activity as NiveshFdMainActivity).fdInvestmentDetails.RenewOption = rgMaturity.text.toString() (activity as NiveshFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as NiveshFdMainActivity).fdInvestmentDetails diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt index d240bb0..d7e418d 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt @@ -140,7 +140,6 @@ class StepTwoNiveshFDFragment : Fragment() { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { removeError(binding.tlPanNumber) if (s.toString().trim().length == 10) { - panCheckApi() checkFDCKYCApi() } } @@ -1097,67 +1096,6 @@ class StepTwoNiveshFDFragment : Fragment() { } - private fun panCheckApi() { - val panCheck = PanCheckRequest() - panCheck.clientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - panCheck.subBrokerCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code - panCheck.panNumber = binding.edtPANNumber.text.toString() - panCheck.mobileNumber = "" - (activity as NiveshFdMainActivity).viewModel.panCheck(panCheck, token, activity as NiveshFdMainActivity) - (activity as NiveshFdMainActivity).viewModel.getPanCheckMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("panCheckApi ", " response -->$response") - val panCheckResponse = - Gson().fromJson( - response.data?.toString(), - PanCheckResponse::class.java - ) - panCheckResponse.response.status_code.let { code -> - if (binding.tvPANVerify.visibility == View.GONE) { - binding.tvPANVerify.visibility = View.VISIBLE - } - when (code) { - 200 -> { - binding.tvPANVerify.text = getString(R.string.verifiedText) - binding.tvPANVerify.setTextColor( - ContextCompat.getColor( - activity as NiveshFdMainActivity, - R.color.green - ) - ) - } - // 650 -> refreshToken() - else -> { - binding.tvPANVerify.text = getString(R.string.notVerifiedText) - binding.tvPANVerify.setTextColor( - ContextCompat.getColor( - activity as NiveshFdMainActivity, - R.color.red - ) - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - private fun titleApi() { val getCodeRequest = GetCodeRequest() getCodeRequest.ProductName = getString(R.string.bajajFD) diff --git a/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt b/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt index 4754f9e..4ff6efa 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt @@ -1,9 +1,12 @@ package com.nivesh.production.niveshfd.util +import android.Manifest +import android.annotation.SuppressLint import android.app.Activity import android.app.AlertDialog import android.content.Context import android.content.Intent +import android.content.pm.PackageManager import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.net.ConnectivityManager @@ -11,14 +14,20 @@ import android.net.NetworkCapabilities import android.net.Uri import android.os.Build import android.provider.Settings +import android.telephony.TelephonyManager +import android.text.TextUtils import android.text.format.DateFormat import android.util.Log import android.util.Patterns +import androidx.core.app.ActivityCompat import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.niveshfd.R +import com.nivesh.production.niveshfd.db.PreferenceManager +import com.nivesh.production.niveshfd.interfaces.IPreferenceHelper +import com.nivesh.production.niveshfd.model.DeviceInfo import com.nivesh.production.niveshfd.ui.activity.NiveshFdMainActivity import kotlinx.coroutines.CoroutineExceptionHandler import org.json.JSONObject @@ -274,6 +283,83 @@ class Common { } + @SuppressLint("HardwareIds") + fun getDeviceInfo(mContext: Context): DeviceInfo { + val preferenceHelper: IPreferenceHelper = PreferenceManager(mContext) + val deviceInfo = DeviceInfo() + var device_id: String? = "" + try { + val telephonyManager = + mContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager + deviceInfo.device_model = if (TextUtils.isEmpty(Build.DEVICE)) "" else Build.DEVICE + deviceInfo.device_os_version = if (TextUtils.isEmpty(Build.VERSION.RELEASE)) "" else Build.VERSION.RELEASE + deviceInfo.device_name = if (TextUtils.isEmpty(Build.PRODUCT)) "" else Build.PRODUCT + deviceInfo.device_type = "Android" + + if (device_id == null || device_id.isEmpty() || device_id.equals( + "unknown", + ignoreCase = true + ) + ) { + device_id = if (TextUtils.isEmpty(Settings.Secure.getString(mContext.contentResolver, Settings.Secure.ANDROID_ID)) + ) "" else Settings.Secure.getString( + mContext.contentResolver, + Settings.Secure.ANDROID_ID + ) + } + // deviceInfo.device_id = device_id + "#" + preferenceHelper.getAppName() + deviceInfo.device_id_for_UMSId = device_id + // deviceInfo.sdk_version = com.nivesh.production.BuildConfig.VERSION_NAME + + + if (ActivityCompat.checkSelfPermission( + mContext, + Manifest.permission.READ_PHONE_STATE + ) != PackageManager.PERMISSION_GRANTED + ) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + device_id = telephonyManager.imei + if (device_id == null) { + device_id = + if (TextUtils.isEmpty(Build.getSerial())) "" else Build.getSerial() + } + } else { + device_id = telephonyManager.deviceId + if (device_id == null) { + device_id = + if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL + } + } + } else { + device_id = telephonyManager.deviceId + if (device_id == null) { + device_id = if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL + } + } + + } catch (e: Exception) { + e.printStackTrace() + if (device_id == null || device_id.isEmpty() || device_id.equals( + "unknown", + ignoreCase = true + ) + ) { + device_id = if (TextUtils.isEmpty( + Settings.Secure.getString( + mContext.contentResolver, + Settings.Secure.ANDROID_ID + ) + ) + ) "" else Settings.Secure.getString( + mContext.contentResolver, + Settings.Secure.ANDROID_ID + ) + } + // deviceInfo.deviceId = device_id + "#" + preferenceHelper.getAppName() + deviceInfo.device_id_for_UMSId = device_id + } + return deviceInfo + } } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/viewModel/BajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/niveshfd/viewModel/BajajFDViewModel.kt index 94d9eb1..669abd9 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/viewModel/BajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/viewModel/BajajFDViewModel.kt @@ -40,14 +40,7 @@ open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewMo } } - val getFDKYCMutableData: MutableLiveData> = MutableLiveData() - fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getFDKYCMutableData.postValue(Resource.Loading()) - val response = mainRepository.checkFDKYCRequest(requestBody, token) - getFDKYCMutableData.postValue(handleResponse(response)) - } - } + val getPaymentReQueryMutableData: MutableLiveData> = MutableLiveData() fun getPaymentReQuery(requestBody: PaymentReQueryRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) { @@ -124,14 +117,12 @@ open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewMo // Step 2 - val getPanCheckMutableData: MutableLiveData> = MutableLiveData() - fun panCheck(panCheck: PanCheckRequest, token: String, activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { + val getFDKYCMutableData: MutableLiveData> = MutableLiveData() + fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) { if (Common.isNetworkAvailable(activity)) { - getPanCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.panCheck(panCheck, token) - getPanCheckMutableData.postValue(handleResponse(response)) + getFDKYCMutableData.postValue(Resource.Loading()) + val response = mainRepository.checkFDKYCRequest(requestBody, token) + getFDKYCMutableData.postValue(handleResponse(response)) } } diff --git a/app/src/main/res/layout/fragment_niveshfd_step_one.xml b/app/src/main/res/layout/fragment_niveshfd_step_one.xml index bb16ab1..09f13d0 100644 --- a/app/src/main/res/layout/fragment_niveshfd_step_one.xml +++ b/app/src/main/res/layout/fragment_niveshfd_step_one.xml @@ -222,15 +222,6 @@ android:text="@string/additionalDetailTwo" android:textSize="@dimen/text_size_12" /> - - - Date: Tue, 10 Jan 2023 20:05:01 +0530 Subject: [PATCH 4/5] added code --- app/src/main/AndroidManifest.xml | 1 + .../ui/activity/NiveshFdMainActivity.kt | 28 ++++-- .../ui/fragment/StepOneNiveshFDFragment.kt | 6 +- .../nivesh/production/niveshfd/util/Common.kt | 95 ++++++++++--------- app/src/main/res/values-hi-rIN/strings.xml | 14 ++- app/src/main/res/values/strings.xml | 14 ++- 6 files changed, 91 insertions(+), 67 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c6d61c..cda90aa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,6 +10,7 @@ + var dialogWebView: Dialog? = null var loginRole: Int = 0 + var stepCount: Int = 0 + var uniqueId: String = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -81,7 +81,7 @@ class NiveshFdMainActivity : BaseActivity() { } // For Set Data - PreferenceManager( this@NiveshFdMainActivity).setSubBrokerID("") + PreferenceManager(this@NiveshFdMainActivity).setSubBrokerID("") // For Get Data PreferenceManager(context = this@NiveshFdMainActivity).getSubBrokerID() @@ -140,7 +140,10 @@ class NiveshFdMainActivity : BaseActivity() { is Resource.DataError -> { } - else -> {} + else -> { + showDialogValidation(this@NiveshFdMainActivity, response.message) + } + } } } @@ -187,9 +190,12 @@ class NiveshFdMainActivity : BaseActivity() { 200 -> { setViewPager(stepsCount) } - 650 -> "" + 650 -> "" else -> { - showDialogValidation(this@NiveshFdMainActivity, response.message) + showDialogValidation( + this@NiveshFdMainActivity, + response.message + ) } } } @@ -206,7 +212,9 @@ class NiveshFdMainActivity : BaseActivity() { is Resource.DataError -> { } - else -> {} + else -> { + showDialogValidation(this@NiveshFdMainActivity, response.message) + } } } } @@ -432,7 +440,9 @@ class NiveshFdMainActivity : BaseActivity() { is Resource.DataError -> { } - else -> {} + else -> { + showDialogValidation(this@NiveshFdMainActivity, response.message) + } } } } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt index a897699..712c92f 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt @@ -109,14 +109,14 @@ class StepOneNiveshFDFragment : Fragment() { } // Maturity Options - rgMaturity.text = "Total" + rgMaturity.text = getString(R.string.totalDeduction) binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> rgMaturity = group.findViewById(checkedId) Log.e("Maturity", "-->" + rgMaturity.text) if (rgMaturity.text.contains("credit")){ - rgMaturity.text = "Total" + rgMaturity.text = getString(R.string.totalDeduction) }else{ - rgMaturity.text = "Principal" + rgMaturity.text = getString(R.string.principalDeduction) } } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt b/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt index 4ff6efa..f575ad7 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt @@ -25,8 +25,6 @@ import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.db.PreferenceManager -import com.nivesh.production.niveshfd.interfaces.IPreferenceHelper import com.nivesh.production.niveshfd.model.DeviceInfo import com.nivesh.production.niveshfd.ui.activity.NiveshFdMainActivity import kotlinx.coroutines.CoroutineExceptionHandler @@ -140,7 +138,11 @@ class Common { builder.setPositiveButton(activity.getString(R.string.Ok)) { dialogInterface, _ -> val intent = Intent( Settings.ACTION_APPLICATION_DETAILS_SETTINGS, - Uri.fromParts("package", (activity as NiveshFdMainActivity).packageName, null) + Uri.fromParts( + "package", + (activity as NiveshFdMainActivity).packageName, + null + ) ) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) activity.startActivity(intent) @@ -217,20 +219,20 @@ class Common { return Resource.Error(response.message()) } - fun handleResponse1(response: Response): Resource { - if (response.isSuccessful && response.body() != null) { - return if (response.body().toString().isNotEmpty()) { - Log.e("response", "-->$response") - val str: String = response.body().toString().replace("\r\n", "") - Log.e("str", "-->$str") - val jsonObject = JSONObject(str) - Log.e("jsonObject", "-->$jsonObject") - Resource.Success(jsonObject.toString()) - }else { - Resource.Error(response.message()) - } - } - return Resource.Error(response.message()) + fun handleResponse1(response: Response): Resource { + if (response.isSuccessful && response.body() != null) { + return if (response.body().toString().isNotEmpty()) { + Log.e("response", "-->$response") + val str: String = response.body().toString().replace("\r\n", "") + Log.e("str", "-->$str") + val jsonObject = JSONObject(str) + Log.e("jsonObject", "-->$jsonObject") + Resource.Success(jsonObject.toString()) + } else { + Resource.Error(response.message()) + } + } + return Resource.Error(response.message()) } @@ -264,12 +266,11 @@ class Common { } /* this function is used for file size in readable format(End)*/ - fun getFileSizeInMB(length: Long): Double { - // Get length of file in bytes - val fileSizeInBytes = length.toDouble() - // Convert the bytes to Kilobytes (1 KB = 1024 Bytes) - val fileSizeInKB = fileSizeInBytes / 1024 - // Convert the KB to MegaBytes (1 MB = 1024 KBytes) + fun getFileSizeInMB(length: Long): Double { // Get length of file in bytes + val fileSizeInBytes = + length.toDouble() // Convert the bytes to Kilobytes (1 KB = 1024 Bytes) + val fileSizeInKB = + fileSizeInBytes / 1024 // Convert the KB to MegaBytes (1 MB = 1024 KBytes) return fileSizeInKB / 1024 } @@ -285,32 +286,36 @@ class Common { @SuppressLint("HardwareIds") fun getDeviceInfo(mContext: Context): DeviceInfo { - val preferenceHelper: IPreferenceHelper = PreferenceManager(mContext) val deviceInfo = DeviceInfo() - var device_id: String? = "" + var deviceId: String? = "" try { val telephonyManager = mContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager deviceInfo.device_model = if (TextUtils.isEmpty(Build.DEVICE)) "" else Build.DEVICE - deviceInfo.device_os_version = if (TextUtils.isEmpty(Build.VERSION.RELEASE)) "" else Build.VERSION.RELEASE + deviceInfo.device_os_version = + if (TextUtils.isEmpty(Build.VERSION.RELEASE)) "" else Build.VERSION.RELEASE deviceInfo.device_name = if (TextUtils.isEmpty(Build.PRODUCT)) "" else Build.PRODUCT deviceInfo.device_type = "Android" - if (device_id == null || device_id.isEmpty() || device_id.equals( + if ((deviceId == null) || deviceId.isEmpty() || deviceId.equals( "unknown", ignoreCase = true ) ) { - device_id = if (TextUtils.isEmpty(Settings.Secure.getString(mContext.contentResolver, Settings.Secure.ANDROID_ID)) + deviceId = if (TextUtils.isEmpty( + Settings.Secure.getString( + mContext.contentResolver, + Settings.Secure.ANDROID_ID + ) + ) ) "" else Settings.Secure.getString( mContext.contentResolver, Settings.Secure.ANDROID_ID ) } - // deviceInfo.device_id = device_id + "#" + preferenceHelper.getAppName() - deviceInfo.device_id_for_UMSId = device_id - // deviceInfo.sdk_version = com.nivesh.production.BuildConfig.VERSION_NAME - + // deviceInfo.device_id = device_id + "#" + preferenceHelper.getAppName() + deviceInfo.device_id_for_UMSId = deviceId + // deviceInfo.sdk_version = com.nivesh.production.BuildConfig.VERSION_NAME if (ActivityCompat.checkSelfPermission( mContext, @@ -318,33 +323,33 @@ class Common { ) != PackageManager.PERMISSION_GRANTED ) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - device_id = telephonyManager.imei - if (device_id == null) { - device_id = + deviceId = telephonyManager.imei + if (deviceId == null) { + deviceId = if (TextUtils.isEmpty(Build.getSerial())) "" else Build.getSerial() } } else { - device_id = telephonyManager.deviceId - if (device_id == null) { - device_id = + deviceId = telephonyManager.deviceId + if (deviceId == null) { + deviceId = if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL } } } else { - device_id = telephonyManager.deviceId - if (device_id == null) { - device_id = if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL + deviceId = telephonyManager.deviceId + if (deviceId == null) { + deviceId = if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL } } } catch (e: Exception) { e.printStackTrace() - if (device_id == null || device_id.isEmpty() || device_id.equals( + if ((deviceId == null) || deviceId.isEmpty() || deviceId.equals( "unknown", ignoreCase = true ) ) { - device_id = if (TextUtils.isEmpty( + deviceId = if (TextUtils.isEmpty( Settings.Secure.getString( mContext.contentResolver, Settings.Secure.ANDROID_ID @@ -355,8 +360,8 @@ class Common { Settings.Secure.ANDROID_ID ) } - // deviceInfo.deviceId = device_id + "#" + preferenceHelper.getAppName() - deviceInfo.device_id_for_UMSId = device_id + // deviceInfo.deviceId = device_id + "#" + preferenceHelper.getAppName() + deviceInfo.device_id_for_UMSId = deviceId } return deviceInfo } diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 02fa1f2..b4507f2 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -44,6 +44,8 @@ Min. 12 months, Max. 60 months MINAmount MAXAmount + Total + Principal Please enter amount @@ -209,6 +211,10 @@ Add Photo! Cancel Aadhar + You Need to Give Permission of Camera for uploading Image + You Need to Give Permission of Gallery for uploading Image + Permission Required ! + Permission\'s Required ! Make Payment @@ -231,6 +237,7 @@ Your transaction is unsuccessful. Sorry for the inconvenience please try again later Retry + @@ -246,11 +253,8 @@ Add New Account OK - You Need to Give Permission of Camera for uploading Image - You Need to Give Permission of Gallery for uploading Image - Permission Required ! - Permission\'s Required ! - + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 02fa1f2..b4507f2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -44,6 +44,8 @@ Min. 12 months, Max. 60 months MINAmount MAXAmount + Total + Principal Please enter amount @@ -209,6 +211,10 @@ Add Photo! Cancel Aadhar + You Need to Give Permission of Camera for uploading Image + You Need to Give Permission of Gallery for uploading Image + Permission Required ! + Permission\'s Required ! Make Payment @@ -231,6 +237,7 @@ Your transaction is unsuccessful. Sorry for the inconvenience please try again later Retry + @@ -246,11 +253,8 @@ Add New Account OK - You Need to Give Permission of Camera for uploading Image - You Need to Give Permission of Gallery for uploading Image - Permission Required ! - Permission\'s Required ! - + + \ No newline at end of file From 35eaac9a51bca7a88ad35fdd28c60753a29474d8 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Wed, 11 Jan 2023 10:41:57 +0530 Subject: [PATCH 5/5] added missing validations --- .../ui/fragment/StepFourNiveshFDFragment.kt | 8 ++-- .../ui/fragment/StepOneNiveshFDFragment.kt | 16 +++++--- .../ui/fragment/StepTwoNiveshFDFragment.kt | 38 +++++++++++++++---- .../nivesh/production/niveshfd/util/Common.kt | 6 +++ .../layout/fragment_niveshfd_step_four.xml | 8 ++-- .../res/layout/fragment_niveshfd_step_one.xml | 6 ++- .../res/layout/fragment_niveshfd_step_two.xml | 18 +++++---- .../res/layout/item_customer_list_preview.xml | 3 +- app/src/main/res/values-hi-rIN/strings.xml | 8 +++- app/src/main/res/values/strings.xml | 10 +++-- app/src/main/res/values/themes.xml | 4 +- 11 files changed, 84 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFourNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFourNiveshFDFragment.kt index d03000e..48a6013 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFourNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepFourNiveshFDFragment.kt @@ -98,20 +98,20 @@ class StepFourNiveshFDFragment : Fragment() { } private fun validated(): Boolean { - if (selectedList.isEmpty()) { + return if (selectedList.isEmpty()) { showDialogValidation( activity as NiveshFdMainActivity, getString(R.string.validTermsCondition) ) - return false + false } else if (!binding.checkBox.isChecked) { showDialogValidation( activity as NiveshFdMainActivity, resources.getString(R.string.validTermsConditions) ) - return false + false } else { - return true + true } } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt index 712c92f..b88d492 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepOneNiveshFDFragment.kt @@ -258,11 +258,9 @@ class StepOneNiveshFDFragment : Fragment() { when (code) { 200 -> { listOfMinAmount = getCodeResponse.Response.GetCodesList - if (listOfMinAmount.isNotEmpty()) { - binding.txtMinAmount.text = getString(R.string.minAmount).plus( - listOfMinAmount[0].Value - ) - } +// if (listOfMinAmount.isNotEmpty()) { +// binding.txtMinAmount.text = getString(R.string.minAmount).plus(listOfMinAmount[0].Value) +// } maxAmountApi() } 650 -> "" @@ -438,7 +436,13 @@ class StepOneNiveshFDFragment : Fragment() { binding.tlDepositAmount, getString(R.string.validMinAmount) ) - } else if (binding.edtAmount.text.toString() + } else if (binding.edtAmount.text.toString().toInt() % 1000 != 0) { + commonErrorMethod( + binding.edtAmount, + binding.tlDepositAmount, + getString(R.string.validMultipleAmount) + ) + }else if (binding.edtAmount.text.toString() .toDouble() > listOfMaxAmount[0].Value.toDouble() ) { commonErrorMethod( diff --git a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt index d7e418d..b1df440 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/ui/fragment/StepTwoNiveshFDFragment.kt @@ -39,6 +39,7 @@ import com.nivesh.production.niveshfd.util.Common.Companion.getDate import com.nivesh.production.niveshfd.util.Common.Companion.isIndianMobileNo import com.nivesh.production.niveshfd.util.Common.Companion.isMinor import com.nivesh.production.niveshfd.util.Common.Companion.isValidEmail +import com.nivesh.production.niveshfd.util.Common.Companion.isValidIndividualPan import com.nivesh.production.niveshfd.util.Common.Companion.isValidName import com.nivesh.production.niveshfd.util.Common.Companion.isValidPan import com.nivesh.production.niveshfd.util.Common.Companion.removeError @@ -564,10 +565,10 @@ class StepTwoNiveshFDFragment : Fragment() { } } binding.tvBankDetails.setOnClickListener { - if (binding.llBankDetails.visibility == View.VISIBLE) { - binding.llBankDetails.visibility = View.GONE + if (binding.llBank.visibility == View.VISIBLE) { + binding.llBank.visibility = View.GONE } else { - binding.llBankDetails.visibility = View.VISIBLE + binding.llBank.visibility = View.VISIBLE } } @@ -1487,10 +1488,22 @@ class StepTwoNiveshFDFragment : Fragment() { listOfOccupation ) binding.spOccupation.setAdapter(adapter) - binding.spOccupation.setText( - adapter.getItem(0)?.Label, - false - ) + + val occupationCode = (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_OCCUPATION_CODE + if (occupationCode.isNullOrEmpty()) { + + binding.spOccupation.setText( + adapter.getItem(0)?.Label, + false + ) + }else{ + for (title in listOfOccupation) { + if (title.Value == occupationCode) { + binding.spOccupation.setText(title.Label, false) + break + } + } + } } } // 650 -> refreshToken() @@ -1823,7 +1836,10 @@ class StepTwoNiveshFDFragment : Fragment() { ) } else if (binding.edtDOB.text.toString().isEmpty()) { // EditText commonErrorMethod(binding.edtDOB, binding.tlDOB, getString(R.string.emptyDOB)) - } else if (binding.edtPANNumber.text.toString().isEmpty()) { // EditText + }else if (isMinor(binding.edtDOB.text.toString())) { // EditText + commonErrorMethod(binding.edtDOB, binding.tlDOB, getString(R.string.minorApplicant)) + } + else if (binding.edtPANNumber.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtPANNumber, binding.tlPanNumber, @@ -1835,6 +1851,12 @@ class StepTwoNiveshFDFragment : Fragment() { binding.tlPanNumber, getString(R.string.invalidPAN) ) + } else if (!isValidIndividualPan(binding.edtPANNumber.text.toString())) { // EditText + commonErrorMethod( + binding.edtPANNumber, + binding.tlPanNumber, + getString(R.string.invalidIndividualPAN) + ) } else if (binding.spTitle.text.isEmpty()) { // Spinner commonSpinnerErrorMethod( binding.spTitle, diff --git a/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt b/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt index f575ad7..f1ca97b 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/niveshfd/util/Common.kt @@ -97,6 +97,12 @@ class Common { return mMatcher.matches() } + fun isValidIndividualPan(pan: String?): Boolean { + val mPattern = Pattern.compile("[A-Z]{3}[P][A-Z][0-9]{4}[A-Z]") + val mMatcher = mPattern.matcher(pan.toString()) + return mMatcher.matches() + } + //is Indian mobile Number fun isIndianMobileNo(mobileNumber: String?): Boolean { //(0/91): number starts with (0/91) diff --git a/app/src/main/res/layout/fragment_niveshfd_step_four.xml b/app/src/main/res/layout/fragment_niveshfd_step_four.xml index 50dc3fe..3c5a6d5 100644 --- a/app/src/main/res/layout/fragment_niveshfd_step_four.xml +++ b/app/src/main/res/layout/fragment_niveshfd_step_four.xml @@ -221,11 +221,7 @@ android:id="@+id/rvTerms" android:layout_width="match_parent" android:layout_height="match_parent" - tools:listitem="@layout/item_customer_list_preview" - - - /> - + tools:listitem="@layout/item_customer_list_preview" /> @@ -186,7 +188,7 @@ - - + + + android:orientation="horizontal" /> - - + + + Please enter amount first Entered amount should be greater than minimum amount - Entered amount should be less than 5 Cr. + Entered amount should be up to 5 Cr only + Entered Amount should be multiples of 1000 Please select Interest Payout Please select Investment Tenure @@ -139,9 +140,12 @@ Mobile number should have at least 10 digits Mobile number should start with 6,7,8 and 9 Please select date of birth + Primary Applicant should not be minor Please enter PAN number - Invalid PAN + Please enter valid PAN number + PAN Applicants should be individual + Account Verified diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b4507f2..8c085ba 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,7 +18,7 @@ Select Investment Tenure Up to 0.25% p.a for Up to 0.25% p.a for Senior Citizens, 60+ - Maturity Instructions: + Maturity Instructions Automatically credit to my bank account Automatically renew principal amount Automatically renew both principal and interest amount @@ -52,7 +52,8 @@ Please enter amount first Entered amount should be greater than minimum amount - Entered amount should be less than 5 Cr. + Entered amount should be up to 5 Cr only + Entered Amount should be multiples of 1000 Please select Interest Payout Please select Investment Tenure @@ -139,9 +140,12 @@ Mobile number should have at least 10 digits Mobile number should start with 6,7,8 and 9 Please select date of birth + Primary Applicant should not be minor Please enter PAN number - Invalid PAN + Please enter valid PAN number + PAN Applicants should be individual + Account Verified diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index cfa2984..a11320e 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -16,10 +16,10 @@