diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt index 2e5f4be..45a053f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt @@ -12,7 +12,8 @@ import com.nivesh.production.bajajfd.model.ClientBanklist class BankListAdapter( private val bankList: List?, - private val selectedAccount: String? = null + private val selectedAccount: String? = null, + private val width:Double? ) : RecyclerView.Adapter() { inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) @@ -27,13 +28,23 @@ class BankListAdapter( parent: ViewGroup, viewType: Int ): BankListViewHolder { - return BankListViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.item_bank_list_preview, - parent, - false - ) - ) +// return BankListViewHolder( +// LayoutInflater.from(parent.context).inflate( +// R.layout.item_bank_list_preview, +// parent, +// false +// ) +// ) + + + + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_bank_list_preview, parent, false); + view.layoutParams = width?.div(1.35) + ?.let { ViewGroup.LayoutParams(it.toInt(),ViewGroup.LayoutParams.WRAP_CONTENT) } + return BankListViewHolder(view) + + + } override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { @@ -44,28 +55,28 @@ class BankListAdapter( holder.tvBankIFSC.text = bankList.IFSCCode holder.tvBankAccountNumber.text = bankList.AccountNumber - if (selectedAccount == bankList.AccountNumber && checkedPosition == -2 - ) { + if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2)) + { holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) checkedPosition = holder.adapterPosition - } else if (checkedPosition == -1) { + + } + else if (checkedPosition == -1) { holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) - } else if (checkedPosition == holder.adapterPosition) { + } + else if (checkedPosition == holder.adapterPosition) { holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - } else { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) } - setOnClickListener { - onItemClickListener?.let { - it(bankList) - - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - if (checkedPosition != holder.adapterPosition) { - notifyItemChanged(checkedPosition) - checkedPosition = holder.adapterPosition + else { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } - } + holder.itemView.setOnClickListener { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt index 10fca16..0b6ae56 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt @@ -2,9 +2,9 @@ package com.nivesh.production.bajajfd.model data class BankValidationApiRequest( var BankAccountNo: String?="", - val BankNo: Int?= 0, - val IFSC: String?= "", - val Name: String? = "", - val PhoneNo: String? = "", - val RoleId: Int? = 0 + var BankNo: Int?= 0, + var IFSC: String?= "", + var Name: String? = "", + var PhoneNo: String? = "", + var RoleId: Int? = 0 ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt index 52e87e8..04a1ed1 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt @@ -1,11 +1,11 @@ package com.nivesh.production.bajajfd.model data class ClientBanklist( - val AccountNumber: String?, - val AccountType: String?, - val BankName: String?, - val BranchName: String?, - val DefaultBankFlag: String?, - val IFSCCode: String?, - val IsValBank: Int? = 0 + var AccountNumber: String?="", + var AccountType: String?="", + var BankName: String?="", + var BranchName: String?="", + val DefaultBankFlag: String?="", + var IFSCCode: String?="", + var IsValBank: Int? = 0 ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt index 1ac69ed..8e4df4c 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt @@ -2,7 +2,7 @@ package com.nivesh.production.bajajfd.model data class GetCodes( val Label: String, - val Value: String, + var Value: String, var isSelected : Boolean ) { override fun toString(): String { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index 2c0db95..83f2787 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -4,13 +4,11 @@ import android.Manifest import android.annotation.SuppressLint import android.app.ActionBar.LayoutParams import android.app.Dialog -import android.content.Intent import android.content.pm.PackageManager import android.database.Cursor import android.graphics.Bitmap import android.graphics.BitmapFactory import android.net.Uri -import android.os.Build import android.os.Bundle import android.provider.OpenableColumns import android.util.Base64 @@ -21,7 +19,6 @@ import android.view.ViewGroup import android.widget.* import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts -import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.lifecycle.ViewModelProvider @@ -36,6 +33,7 @@ import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Common.Companion.getFileExtension import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.ImageUtil import com.nivesh.production.bajajfd.util.Resource @@ -45,42 +43,33 @@ import java.io.* class StepThreeBajajFDFragment : BaseFragment() { - var bitmap: Bitmap? = null + private var bitmap: Bitmap? = null private var latestTmpUri: Uri? = null private var _binding: FragmentBajajfdStepThreeBinding? = null private val binding get() = _binding!! private lateinit var listOfDocType: List - lateinit var getCodes: GetCodes + private var docValue: String = "" - private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel + private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var dialog: Dialog private var takeImageResult: ActivityResultLauncher? = null private var selectImageIntent: ActivityResultLauncher? = null - private var launcher:ActivityResultLauncher? = null private var panString: String = "" private var photoString: String = "" private var docString: String = "" private var docString2: String = "" - private var panFileExt: String? = "" private var photoFileExt: String? = "" private var doc1FileExt: String? = "" private var doc2fileExt: String? = "" - private var uniqueId: String? = "" - - // private var actionType: AccountCaptureType? = null -// -// enum class AccountCaptureType { -// MAIN_PAN_UPLOAD, MAIN_PHOTO_UPLOAD, FIRST_UPLOAD, SECOND_UPLOAD -// } - val MAIN_PAN_UPLOAD: Int = 1 - val MAIN_PHOTO_UPLOAD: Int = 2 - val FIRST_UPLOAD: Int = 3 - val SECOND_UPLOAD: Int = 4 - var actionType: Int = -1 + private val MAIN_PAN_UPLOAD: Int = 1 + private val MAIN_PHOTO_UPLOAD: Int = 2 + private val FIRST_UPLOAD: Int = 3 + private val SECOND_UPLOAD: Int = 4 + private var actionType: Int = -1 private val requestPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() @@ -101,7 +90,6 @@ class StepThreeBajajFDFragment : BaseFragment() { return binding.root } - @RequiresApi(Build.VERSION_CODES.P) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) stepThreeBajajFDViewModel = ViewModelProvider( @@ -126,27 +114,11 @@ class StepThreeBajajFDFragment : BaseFragment() { } } - // -// launcher = registerForActivityResult( -// ActivityResultContracts.StartActivityForResult() -// ) { result: ActivityResult -> -// if (result.resultCode == Activity.RESULT_OK -// && result.data != null -// ) { -// val photoUri = result.data!!.data -// if (photoUri != null) { -// uploadDocument(photoUri) -// } -////use photoUri here -// } -// } - // - binding.btnNext.setOnClickListener { if (validate()) { uploadDocApi( "PAN", - "data:image/.".plus(panFileExt).plus(";base64").plus(panString), + "data:image/".plus(panFileExt).plus(";base64, ").plus(panString), 1 ) } @@ -177,7 +149,8 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.spDocType.onItemClickListener = AdapterView.OnItemClickListener { parent, _, position, _ -> - getCodes = parent.getItemAtPosition(position) as GetCodes + val getCodes : GetCodes = parent.getItemAtPosition(position) as GetCodes + docValue = getCodes.Value docString = "" docString2 = "" when (getCodes.Label) { @@ -232,9 +205,6 @@ class StepThreeBajajFDFragment : BaseFragment() { Manifest.permission.READ_EXTERNAL_STORAGE ) if (permission == PackageManager.PERMISSION_GRANTED) { -// val intent = -// Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) -// launcher?.launch(intent) selectImageIntent?.launch("image/*") } else { requestPermission.launch( @@ -262,7 +232,7 @@ class StepThreeBajajFDFragment : BaseFragment() { dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) } - private fun setOtherUploadLayout(itemName: String) { + private fun setOtherUploadLayout(itemName: String?) { binding.tvAadhaarFront.text = itemName.plus(" Front *") if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = View.INVISIBLE @@ -287,77 +257,98 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.ivPan.visibility = View.VISIBLE val fileDir: File = requireActivity().cacheDir val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - panFileExt = fileExtension.extension - if(type == "c") encodedPANBase64(fileExtension) - else panString = bitmap?.let { ImageUtil.convert(it) }.toString() + panFileExt = getFileExtension(getFileName(uri)) + val size : Double = Common.getFileSizeInMB(fileExtension.length()) + if (size < 5){ + if(type == "c") encodedPANBase64(fileExtension) + else panString = bitmap?.let { ImageUtil.convert(it) }.toString() + } else{ + panString = "" + panFileExt = "" + } } MAIN_PHOTO_UPLOAD -> { binding.ivPhotograph.visibility = View.VISIBLE binding.ivPan.visibility = View.VISIBLE val fileDir: File = requireActivity().cacheDir val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - photoFileExt = fileExtension.extension - if(type == "c") encodedPhotoBase64(fileExtension) - else photoString = bitmap?.let { ImageUtil.convert(it) }.toString() - + photoFileExt = getFileExtension(getFileName(uri)) + val size : Double = Common.getFileSizeInMB(fileExtension.length()) + if (size < 5) { + if (type == "c") encodedPhotoBase64(fileExtension) + else photoString = bitmap?.let { ImageUtil.convert(it) }.toString() + }else{ + photoString = "" + photoFileExt = "" + } } FIRST_UPLOAD -> { binding.ivAadharFront.visibility = View.VISIBLE val fileDir: File = requireActivity().cacheDir val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - doc1FileExt = fileExtension.extension - if(type == "c") encodedUpload1Base64(fileExtension) - else docString = bitmap?.let { ImageUtil.convert(it) }.toString() + doc1FileExt = getFileExtension(getFileName(uri)) + val size : Double = Common.getFileSizeInMB(fileExtension.length()) + if (size < 5) { + if (type == "c") encodedUpload1Base64(fileExtension) + else docString = bitmap?.let { ImageUtil.convert(it) }.toString() + }else{ + docString = "" + doc1FileExt = "" + } } else -> { binding.ivAadharBack.visibility = View.VISIBLE val fileDir: File = requireActivity().cacheDir val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - doc2fileExt = fileExtension.extension - if(type == "c") encodedFileToBase64(fileExtension) - else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString() + doc2fileExt = getFileExtension(getFileName(uri)) + val size : Double = Common.getFileSizeInMB(fileExtension.length()) + if (size < 5) { + if (type == "c") encodedFileToBase64(fileExtension) + else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString() + }else{ + docString2 = "" + doc2fileExt = "" + } } } } - private fun encodedPANBase64(fileName: File?) { + + + private fun encodedPANBase64(fileName: File) { panString = try { - val bytes: ByteArray? = fileName?.let { loadFile(it) } - Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } - .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") + val bytes: ByteArray = loadFile(fileName) + Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") } catch (e: Exception) { e.printStackTrace() "" } } - private fun encodedPhotoBase64(fileName: File?) { + private fun encodedPhotoBase64(fileName: File) { photoString = try { - val bytes: ByteArray? = fileName?.let { loadFile(it) } - Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } - .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") + val bytes: ByteArray = loadFile(fileName) + Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") } catch (e: Exception) { e.printStackTrace() "" } } - private fun encodedUpload1Base64(fileName: File?) { + private fun encodedUpload1Base64(fileName: File) { docString = try { - val bytes: ByteArray? = fileName?.let { loadFile(it) } - Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } - .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") + val bytes: ByteArray = loadFile(fileName) + Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") } catch (e: Exception) { e.printStackTrace() "" } } - private fun encodedFileToBase64(fileName: File?) { + private fun encodedFileToBase64(fileName: File) { docString2 = try { - val bytes: ByteArray? = fileName?.let { loadFile(it) } - Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } - .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") + val bytes: ByteArray = loadFile(fileName) + Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") } catch (e: Exception) { e.printStackTrace() "" @@ -410,22 +401,22 @@ class StepThreeBajajFDFragment : BaseFragment() { if (uploadPosition == 1) { uploadDocApi( "Photograph", - "data:image/.".plus(photoFileExt).plus(";base64") + "data:image/".plus(photoFileExt).plus(";base64, ") .plus(photoString), 2 ) } else if (uploadPosition == 2) { uploadDocApi( - getCodes.Value, - "data:image/.".plus(doc1FileExt).plus(";base64") + docValue, + "data:image/".plus(doc1FileExt).plus(";base64, ") .plus(docString), 3 ) } else if (uploadPosition == 3) { - if (getCodes.Value == "Aadhar") { + if (docValue == "Aadhar") { uploadDocApi( - getCodes.Value, - "data:image/.".plus(doc2fileExt).plus(";base64") + docValue, + "data:image/".plus(doc2fileExt).plus(";base64, ") .plus(docString2), 4 ) @@ -441,7 +432,7 @@ class StepThreeBajajFDFragment : BaseFragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getUploadResponse.Response.Message + getUploadResponse.Response.Errors[0].ErrorMessage ) } } @@ -545,7 +536,9 @@ class StepThreeBajajFDFragment : BaseFragment() { adapter.getItem(0)?.Value, false ) - setOtherUploadLayout(listOfDocType[0].Value) + setOtherUploadLayout(adapter.getItem(0)?.Value) + docValue = adapter.getItem(0)?.Value.toString() + } } // 650 -> refreshToken() @@ -592,10 +585,10 @@ class StepThreeBajajFDFragment : BaseFragment() { } else if (docString.isEmpty()) { Common.showDialogValidation( activity as BajajFdMainActivity, - "Upload " + getCodes.Value + " Image" + "Upload $docValue Image" ) return false - } else if (getCodes.Value == "Aadhar" && docString2.isEmpty()) { + } else if (docValue == "Aadhar" && docString2.isEmpty()) { Common.showDialogValidation( activity as BajajFdMainActivity, "Upload Aadhar Back Image" diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 49d9df2..7d805e0 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -7,6 +7,7 @@ import android.text.Editable import android.text.InputFilter import android.text.InputFilter.LengthFilter import android.text.TextWatcher +import android.util.DisplayMetrics import android.util.Log import android.view.LayoutInflater import android.view.View @@ -73,6 +74,8 @@ class StepTwoBajajFDFragment : BaseFragment() { private lateinit var bankListAdapter: BankListAdapter private lateinit var paymentModeAdapter: PaymentModeAdapter private lateinit var stateObject: DataObject + private val listOfBanks: MutableList = mutableListOf() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -522,7 +525,9 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.btnAddBank.setOnClickListener { if (validateBank()) { - /// as + val fullName= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString()) + verifyAccountNo( + binding.edtAccountNumber.text.toString(), binding.edtIFSC.text.toString(), fullName, binding.edtMobileNumber.text.toString(), 1) } } @@ -539,15 +544,18 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.addBankDetail.setOnClickListener { if (binding.llBankDetails.visibility == View.GONE) { binding.llBankDetails.visibility = View.VISIBLE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0) + } else { binding.llBankDetails.visibility = View.GONE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0) } } - titleApi() - - setUpRecyclerView() + setUpRecyclerView( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1) binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { @@ -763,9 +771,8 @@ class StepTwoBajajFDFragment : BaseFragment() { } } - private fun ifscCodeCheckApi(ifsc: String) { - if (ifsc.length >8) { + if (ifsc.length ==11) { stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { @@ -884,6 +891,74 @@ class StepTwoBajajFDFragment : BaseFragment() { } + private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) { + + val bankValidationApiRequest = BankValidationApiRequest() + bankValidationApiRequest.BankAccountNo=bankAccount + bankValidationApiRequest.IFSC=Ifsc + bankValidationApiRequest.Name=name + bankValidationApiRequest.PhoneNo=phoneNumber + bankValidationApiRequest.RoleId=5 + bankValidationApiRequest.BankNo=bankNo + stepTwoBajajFDViewModel.bankValidationApi(bankValidationApiRequest, token, activity as BajajFdMainActivity) + stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getBankValidationApiResponse = + Gson().fromJson( + response.data?.toString(), + BankValidationApiResponse::class.java + ) + getBankValidationApiResponse.response.status_code.let { code -> + if (binding.tvAcVerify.visibility == View.GONE) { + binding.tvAcVerify.visibility = View.VISIBLE + } + + when (code) { + 200 -> { + if(getBankValidationApiResponse.Message=="Account verified") { + val clientBankList =ClientBanklist() + clientBankList.AccountNumber=bankAccount + clientBankList.AccountType="sb" + clientBankList.BankName=binding.edtBankName.text.toString() + clientBankList.BranchName=binding.edtBankBranch.text.toString() + clientBankList.IFSCCode=Ifsc + clientBankList.IsValBank=1 + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let { + listOfBanks.addAll( + it + ) + } + listOfBanks.add(clientBankList) + setUpRecyclerView(listOfBanks , clientBankList.AccountNumber.toString()) + } + else { + Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + } + } + else -> { + Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + is Resource.DataError -> { + + } + } + } + + } + private fun validateBank(): Boolean { return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText commonErrorAutoCompleteMethod( @@ -920,19 +995,19 @@ class StepTwoBajajFDFragment : BaseFragment() { } } - private fun setUpRecyclerView() { - if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isNotEmpty()!!) { - binding.rvClientBankList.layoutManager = - LinearLayoutManager(activity as BajajFdMainActivity) - bankListAdapter = BankListAdapter( - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 - ) - binding.rvClientBankList.adapter = bankListAdapter - } + private fun setUpRecyclerView( bankList: List?, selectedAccount: String? = null) { + val displayMetrics = DisplayMetrics() + requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) + val width = displayMetrics.widthPixels.toDouble() + binding.rvClientBankList.layoutManager = LinearLayoutManager( + mActivity, + LinearLayoutManager.HORIZONTAL, + false + ) + bankListAdapter = BankListAdapter(bankList, selectedAccount,width) + binding.rvClientBankList.adapter = bankListAdapter } - private fun datePicker(edtDOB: TextInputEditText) { val year = cal.get(Calendar.YEAR) val month = cal.get(Calendar.MONTH) @@ -942,7 +1017,6 @@ class StepTwoBajajFDFragment : BaseFragment() { if (monthOfYear.toString().length == 1) { "0".plus(monthOfYear) } - // edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years)) edtDOB.setText( years.toString().plus("-").plus(monthOfYear + 1).plus("-") .plus(dayOfMonth.toString()) @@ -1162,7 +1236,6 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.rvPaymentMode.adapter = paymentModeAdapter } - private fun genderApi() { val getCodeRequest = GetCodeRequest() getCodeRequest.ProductName = getString(R.string.bajajFD) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 9d5bc8b..779be5d 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -8,6 +8,7 @@ import android.graphics.drawable.GradientDrawable import android.net.ConnectivityManager import android.net.NetworkCapabilities import android.os.Build +import android.os.Environment import android.provider.ContactsContract import android.text.format.DateFormat import android.util.Patterns @@ -18,6 +19,7 @@ import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R import kotlinx.coroutines.CoroutineExceptionHandler import retrofit2.HttpException +import java.io.File import java.io.IOException import java.text.SimpleDateFormat import java.util.* @@ -233,5 +235,25 @@ class Common { minAdultAge.add(Calendar.YEAR, -18) return minAdultAge.before(userAge) } + + /* this function is used for file size in readable formate(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) + return fileSizeInKB / 1024 + } + + fun getFileExtension(name: String): String { + val index = name.lastIndexOf('.') + return if (index > 0) { + name.substring(index + 1) + } else { + "" + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 9e724d0..26f8e18 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -169,4 +169,19 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } } + + + + val bankValidationApiMutableData: MutableLiveData> = MutableLiveData() + + fun bankValidationApi(bankValidationApiRequest : BankValidationApiRequest,token:String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + bankValidationApiMutableData.postValue(Resource.Loading()) + val response = mainRepository.bankValidationApiRequest(bankValidationApiRequest,token) + bankValidationApiMutableData.postValue(handleResponse(response)) + } + } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_minus.xml b/app/src/main/res/drawable/ic_minus.xml new file mode 100644 index 0000000..f465978 --- /dev/null +++ b/app/src/main/res/drawable/ic_minus.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 62005a5..89496dd 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -847,7 +847,11 @@ + android:layout_height="match_parent" + android:orientation="horizontal" + + + /> + android:text="@string/savingsAccount" + /> + android:text="@string/currentAccount" + /> @@ -944,10 +952,24 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" + android:inputType="number" android:textSize="@dimen/text_size_14" /> + + + +