diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c5df2bd..ba0157d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt index 499aa70..bdf0cbb 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DataObject.kt @@ -3,15 +3,15 @@ package com.nivesh.production.bajajfd.model import java.io.Serializable data class DataObject( - val BSE_State_Code: String, - val CAMS_statecode: String, - val Country_Id: Int, - val State_Code: String, - val State_Id: Int, - val State_Name: String, - val signzyCode: String + var BSE_State_Code: String? = "", + var CAMS_statecode: String? = "", + var Country_Id: Int? = 0, + var State_Code: String?= "", + var State_Id: Int? = 0, + var State_Name: String? = "", + var signzyCode: String? = "" ): Serializable { override fun toString(): String { - return State_Name + return State_Name.toString() } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt new file mode 100644 index 0000000..fd4ee1d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class DocumentUpload( + val Description: String? = null, + val DocumentType: String? = null, + val FDProvider: String? = null, + val ImageEncodeToBase64: String? = null, + val NiveshClientCode: String? = null, + val UniqueId: String? = null +) \ 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 a93541e..e8c7329 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 @@ -5,7 +5,7 @@ data class GetCodes( val Value: String ) { override fun toString(): String { - return Value + return Label } 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 1c019b8..22ec05b 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 @@ -1,23 +1,56 @@ package com.nivesh.production.bajajfd.ui.fragment +import android.Manifest +import android.app.ActionBar.LayoutParams +import android.app.Dialog +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.net.Uri import android.os.Bundle +import android.provider.MediaStore +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.ImageView +import android.widget.TextView +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.core.content.FileProvider import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider -import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import androidx.lifecycle.lifecycleScope +import com.google.gson.Gson +import com.nivesh.production.bajajfd.BuildConfig +import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding +import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import com.nivesh.production.bajajfd.model.DocumentUpload +import com.nivesh.production.bajajfd.model.GetCodeRequest +import com.nivesh.production.bajajfd.model.GetCodeResponse +import com.nivesh.production.bajajfd.model.GetCodes import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity +import com.nivesh.production.bajajfd.util.Common +import com.nivesh.production.bajajfd.util.Constants +import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel +import java.io.File class StepThreeBajajFDFragment : Fragment() { - private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel + private var latestTmpUri: Uri? = null private var _binding: FragmentBajajfdStepThreeBinding? = null private val binding get() = _binding!! + private lateinit var listOfDocType: List private lateinit var bajajFDInterface: BajajFDInterface + private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel + + private lateinit var dialog: Dialog + companion object { fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { val stepTwoFragment = StepThreeBajajFDFragment() @@ -25,10 +58,38 @@ class StepThreeBajajFDFragment : Fragment() { return stepTwoFragment } } + private fun setApi(bajajFDInterfaces: BajajFDInterface) { bajajFDInterface = bajajFDInterfaces } + private val selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) + { uri -> + val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri) + binding.iv.setImageBitmap(bitmap) + } + + private val takeImageResult = + registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> + if (isSuccess) { + latestTmpUri?.let { uri -> +// binding.iv.setImageURI(uri) + uploadDocument() + } + } + } + + private val requestPermission = registerForActivityResult( + ActivityResultContracts.RequestPermission() + ) { isGranted: Boolean -> + if (isGranted) { + Log.e("permission:", "Granted") + } else { + Log.e("permission:", "Denied") + } + } + + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -36,24 +97,218 @@ class StepThreeBajajFDFragment : Fragment() { _binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false) val root = binding.root + stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel - - binding.btnNext.setOnClickListener{ - if (validate()){ + binding.btnNext.setOnClickListener { + if (validate()) { } } - binding.btnBack.setOnClickListener{ + binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 } + + binding.btnAadhaarFrontUpload.setOnClickListener { + selectImage() + } + + binding.spDocType.onItemClickListener = + AdapterView.OnItemClickListener { parent, _, position, _ -> + + val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes + when (getCodes.Value) { + resources.getString(R.string.aadhar) -> + setAadhaarUploadLayout() + else -> { + setOtherUploadLayout(getCodes.Value) + } + } + } + + docTypeApi() return root } - private fun validate(): Boolean { + private fun selectImage() { + dialog = Dialog(activity as BajajFdMainActivity) + dialog.setContentView(R.layout.camera_gallery_layout) + val ivCut: ImageView = dialog.findViewById(R.id.ivCut) + val tvGallery: TextView = dialog.findViewById(R.id.tvGallery) + val tvCamera: TextView = dialog.findViewById(R.id.tvCamera) + + ivCut.setOnClickListener { + dialog.cancel() + } + + tvGallery.setOnClickListener { + dialog.cancel() + when { + ContextCompat.checkSelfPermission( + activity as BajajFdMainActivity, + Manifest.permission.READ_EXTERNAL_STORAGE + ) == PackageManager.PERMISSION_GRANTED -> { + selectImageIntent.launch("image/*") + } + + ActivityCompat.shouldShowRequestPermissionRationale( + activity as BajajFdMainActivity, + Manifest.permission.READ_EXTERNAL_STORAGE + ) -> { + requestPermission.launch( + Manifest.permission.READ_EXTERNAL_STORAGE + ) + } + + else -> { + requestPermission.launch( + Manifest.permission.READ_EXTERNAL_STORAGE + ) + } + } + } + + tvCamera.setOnClickListener { + dialog.cancel() + when { + ContextCompat.checkSelfPermission( + activity as BajajFdMainActivity, + Manifest.permission.CAMERA + ) == PackageManager.PERMISSION_GRANTED -> { + takeImage() + } + + ActivityCompat.shouldShowRequestPermissionRationale( + activity as BajajFdMainActivity, + Manifest.permission.CAMERA + ) -> { + requestPermission.launch( + Manifest.permission.CAMERA + ) + } + else -> { + requestPermission.launch( + Manifest.permission.CAMERA + ) + } + } + } + + dialog.show() + dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) + } + + private fun checkCameraStoragePermission( + permission: String, + selectImageIntent: ActivityResultLauncher + ) { + TODO("Not yet implemented") + } + + private fun setOtherUploadLayout(itemName: String) { + binding.tvAadhaarFront.text = itemName.plus(" Front *") + if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = + View.INVISIBLE + if (binding.btnAadhaarBackUpload.visibility == View.VISIBLE) binding.btnAadhaarBackUpload.visibility = + View.INVISIBLE + } + + private fun setAadhaarUploadLayout() { + binding.tvAadhaarFront.text = resources.getString(R.string.aadhaarFront) + binding.tvAadhaarBack.text = resources.getString(R.string.aadhaarBack) + + binding.tvAadhaarBack.visibility = View.VISIBLE + binding.btnAadhaarBackUpload.visibility = View.VISIBLE + + binding.tvAadhaarFront.visibility = View.VISIBLE + binding.btnAadhaarFrontUpload.visibility = View.VISIBLE + } + + private fun uploadDocument() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val documentUpload = DocumentUpload() + } + } + + private fun docTypeApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.docType) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepThreeBajajFDViewModel.titleApi(getCodeRequest, Constants.token) + stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + listOfDocType = getCodeResponse.Response.GetCodesList + if (listOfDocType.isNotEmpty()) { + val adapter = ArrayAdapter( + activity as BajajFdMainActivity, + R.layout.spinner_dropdown, + listOfDocType + ) + binding.spDocType.setAdapter(adapter) + binding.spDocType.setText( + adapter.getItem(0)?.Value, + false + ) + setOtherUploadLayout(listOfDocType[0].Value) + } + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + } + } + + + private fun validate(): Boolean { return false } + private fun takeImage() { + lifecycleScope.launchWhenStarted { + getTmpFileUri().let { uri -> + latestTmpUri = uri + takeImageResult.launch(uri) + } + } + } + + private fun getTmpFileUri(): Uri { + val tmpFile = + File.createTempFile("tmp_image_file", ".png", requireActivity().cacheDir).apply { + createNewFile() + deleteOnExit() + } + + return FileProvider.getUriForFile( + requireActivity(), + "${BuildConfig.APPLICATION_ID}.provider", + tmpFile + ) + } + override fun onDestroyView() { super.onDestroyView() _binding = null 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 c7c0eb0..d74a1e1 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 @@ -67,6 +67,7 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var bankListAdapter: BankListAdapter + private lateinit var stateObject: DataObject companion object { fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment { @@ -98,7 +99,9 @@ class StepTwoBajajFDFragment : Fragment() { listOfStates = ArrayList() listOfIFSC = ArrayList() - rbPaymentMode = RadioButton(activity as BajajFdMainActivity) + stateObject = DataObject() + + rbPaymentMode = RadioButton(activity as BajajFdMainActivity) // Personal Details binding.edtMobileNumber.filters = arrayOf(LengthFilter(10)) @@ -121,7 +124,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) // create an OnDateSetListener - if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.isNullOrEmpty()){ + if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.isNullOrEmpty()) { binding.edtDOB.setText(getDate((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.toString())) } binding.edtDOB.setOnClickListener { @@ -259,7 +262,6 @@ class StepTwoBajajFDFragment : Fragment() { } }) binding.edtAddressLine1.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD1) - binding.edtAddressLine2.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -273,7 +275,6 @@ class StepTwoBajajFDFragment : Fragment() { } }) binding.edtAddressLine2.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD2) - binding.edtAddressLine3.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { @@ -288,8 +289,9 @@ class StepTwoBajajFDFragment : Fragment() { }) binding.edtAddressLine3.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD3) - binding.spState.setOnItemClickListener { _, _, _, _ -> + binding.spState.setOnItemClickListener { parent, _, position, _ -> removeError(binding.tlState) + stateObject = parent.getItemAtPosition(position) as DataObject } binding.spCity.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlCity) @@ -371,14 +373,24 @@ class StepTwoBajajFDFragment : Fragment() { } } - if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeDOB.isNullOrEmpty()){ - binding.edtNomineeDOB.setText(getDate((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeDOB.toString())) + if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeDOB.isNullOrEmpty() + ) { + binding.edtNomineeDOB.setText( + getDate( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeDOB.toString() + ) + ) } binding.edtNomineeDOB.setOnClickListener { removeError(binding.tlNomineeDOB) datePicker(binding.edtNomineeDOB) } + binding.spNomineeRelation.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeRelationship) binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlNomineeRelation) } @@ -598,8 +610,8 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtAddressLine3.text.toString() (activity as BajajFdMainActivity).applicantDetails.ApplicantCity = binding.spCity.text.toString() - (activity as BajajFdMainActivity).applicantDetails.ApplicantState = - binding.spState.text.toString() + // (activity as BajajFdMainActivity).applicantDetails.ApplicantState = binding.spState.text.toString() + (activity as BajajFdMainActivity).applicantDetails.ApplicantState = stateObject.State_Code (activity as BajajFdMainActivity).applicantDetails.ApplicantCountry = "India" (activity as BajajFdMainActivity).applicantDetails.ApplicantPincode = binding.edtPinCode.text.toString().toInt() @@ -657,7 +669,7 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianState = "" if (binding.edtGuardianPinCode.text.toString().isEmpty()) { (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianPincode = 0 - }else{ + } else { (activity as BajajFdMainActivity).nomineeGuardianDetails.GuardianPincode = binding.edtGuardianPinCode.text.toString().toInt() } @@ -682,14 +694,20 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdBankDetails.PaymentMode = rbPaymentMode.text.toString() - (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantDetails = (activity as BajajFdMainActivity).applicantDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails = (activity as BajajFdMainActivity).applicantRelationDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.FdBankDetails = (activity as BajajFdMainActivity).fdBankDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeDetails = (activity as BajajFdMainActivity).nomineeDetails - (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails = (activity as BajajFdMainActivity).nomineeGuardianDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantDetails = + (activity as BajajFdMainActivity).applicantDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails = + (activity as BajajFdMainActivity).applicantRelationDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.FdBankDetails = + (activity as BajajFdMainActivity).fdBankDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeDetails = + (activity as BajajFdMainActivity).nomineeDetails + (activity as BajajFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails = + (activity as BajajFdMainActivity).nomineeGuardianDetails - (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = (activity as BajajFdMainActivity).createFDApplicantRequest + (activity as BajajFdMainActivity).createFDRequest.CreateFDApplicationRequest = + (activity as BajajFdMainActivity).createFDApplicantRequest Log.e( "CreateFDRequest", "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest) @@ -858,8 +876,11 @@ class StepTwoBajajFDFragment : Fragment() { 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())) + // edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years)) + edtDOB.setText( + years.toString().plus("-").plus(monthOfYear + 1).plus("-") + .plus(dayOfMonth.toString()) + ) edtDOB.setSelection(edtDOB.text.toString().length) }, year, month, day ) @@ -873,8 +894,10 @@ class StepTwoBajajFDFragment : Fragment() { private fun panCheckApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val panCheck = PanCheckRequest() - panCheck.clientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - panCheck.subBrokerCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code + panCheck.clientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + panCheck.subBrokerCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code panCheck.panNumber = binding.edtPANNumber.text.toString() panCheck.mobileNumber = "" stepTwoBajajFDViewModel.panCheck(panCheck, token) @@ -1317,11 +1340,15 @@ class StepTwoBajajFDFragment : Fragment() { false ) cityListApi(adapter.getItem(0)?.State_Id) + + stateObject = adapter.getItem(0) as DataObject + } else { for (title in listOfStates) { if (title.State_Code == newTitleText) { binding.spState.setText(title.State_Name, false) cityListApi(title.State_Id) + // val stateObject: DataObject = adapter.getItem(0) as DataObject break } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt index 74522d4..ed0803b 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt @@ -2,6 +2,7 @@ package com.nivesh.production.bajajfd.viewModel import androidx.lifecycle.* import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Resource @@ -27,7 +28,12 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi } - + val getTitleMutableData: MutableLiveData> = MutableLiveData() + fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { + getTitleMutableData.postValue(Resource.Loading()) + val response = mainRepository.titleCheck(getCodeRequest, token) + getTitleMutableData.postValue(handleRatesResponse(response)) + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/camera.png b/app/src/main/res/drawable/camera.png new file mode 100644 index 0000000..6ea6bca Binary files /dev/null and b/app/src/main/res/drawable/camera.png differ diff --git a/app/src/main/res/drawable/gallery.png b/app/src/main/res/drawable/gallery.png new file mode 100644 index 0000000..d309f3e Binary files /dev/null and b/app/src/main/res/drawable/gallery.png differ diff --git a/app/src/main/res/drawable/svg_camera.xml b/app/src/main/res/drawable/svg_camera.xml new file mode 100644 index 0000000..48a8a01 --- /dev/null +++ b/app/src/main/res/drawable/svg_camera.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/drawable/svg_close.xml b/app/src/main/res/drawable/svg_close.xml new file mode 100644 index 0000000..844b6b6 --- /dev/null +++ b/app/src/main/res/drawable/svg_close.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/svg_image.xml b/app/src/main/res/drawable/svg_image.xml new file mode 100644 index 0000000..3ffb603 --- /dev/null +++ b/app/src/main/res/drawable/svg_image.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/camera_gallery_layout.xml b/app/src/main/res/layout/camera_gallery_layout.xml new file mode 100644 index 0000000..eda34a7 --- /dev/null +++ b/app/src/main/res/layout/camera_gallery_layout.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index d95444d..1e251d4 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -81,6 +81,71 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> + + +