diff --git a/app/src/GetAllRates.kt b/app/src/GetAllRates.kt deleted file mode 100644 index ab3a97d..0000000 --- a/app/src/GetAllRates.kt +++ /dev/null @@ -1,3 +0,0 @@ -data class GetAllRates( - val Response: Response -) \ No newline at end of file diff --git a/app/src/ROIDatalist.kt b/app/src/ROIDatalist.kt deleted file mode 100644 index aaec798..0000000 --- a/app/src/ROIDatalist.kt +++ /dev/null @@ -1,7 +0,0 @@ -data class ROIDatalist( - val Frequency: String, - val Provider: String, - val ROI: Double, - val Tenure: String, - val Type: String -) \ No newline at end of file diff --git a/app/src/Response.kt b/app/src/Response.kt deleted file mode 100644 index 7d59270..0000000 --- a/app/src/Response.kt +++ /dev/null @@ -1,7 +0,0 @@ -data class Response( - val Errors: List, - val Message: String, - val ROIDatalist: List, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index 0142c2f..1b3fedb 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -1,45 +1,59 @@ package com.nivesh.production.bajajfd.interfaces import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import okhttp3.RequestBody import retrofit2.Response import retrofit2.http.Body +import retrofit2.http.Header +import retrofit2.http.Headers import retrofit2.http.POST interface ApiInterface { @POST("GetRates") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun getRates(@Body getRatesRequest: GetRatesRequest): Response @POST("CheckFDCKYC") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun checkFDKYC(@Body requestBody: RequestBody): Response @POST("CreateFDApplication") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun createFDApp(@Body requestBody: RequestBody): Response @POST("DocumentsUpload") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun documentsUpload(@Body requestBody: RequestBody): Response @POST("SaveFDOtherData") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun saveFDOtherData(@Body requestBody: RequestBody): Response @POST("GetFDDetails") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun getFDDetails(@Body requestBody: RequestBody): Response @POST("UpdateFDPaymentStatus") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody): Response @POST("FinaliseFD") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun finaliseFD(@Body requestBody: RequestBody): Response @POST("FinaliseKYC") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun finaliseKYC(@Body requestBody: RequestBody): Response @POST("PaymentRequery") + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") suspend fun paymentReQuery(@Body requestBody: RequestBody): Response @POST("GetCodes") - suspend fun getCodes(@Body requestBody: RequestBody): Response + @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + suspend fun getCodes(@Body requestBody: GetCodeRequest): Response } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodeRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodeRequest.kt new file mode 100644 index 0000000..7a890aa --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodeRequest.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class GetCodeRequest( + var Category: String ? = null, + var InputValue: String? = null, + var Language: String ? = null, + var ProductName: String? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodeResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodeResponse.kt new file mode 100644 index 0000000..ea8687d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodeResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class GetCodeResponse( + val Response: ResponseX +) \ 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 new file mode 100644 index 0000000..d05b6e6 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt @@ -0,0 +1,6 @@ +package com.nivesh.production.bajajfd.model + +data class GetCodes( + val Label: String, + val Value: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt new file mode 100644 index 0000000..e81f28d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt @@ -0,0 +1,9 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseX( + val Errors: List, + val GetCodesList: List, + val Message: String, + val Status: String, + val StatusCode: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index 7235eb0..5d33d0a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt @@ -1,6 +1,7 @@ package com.nivesh.production.bajajfd.repositories import com.nivesh.production.bajajfd.interfaces.ApiInterface +import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest class MainRepository constructor(private val apiInterface: ApiInterface) { @@ -34,7 +35,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun paymentReQueryResponse(getRatesRequest: GetRatesRequest) = apiInterface.getRates(getRatesRequest) - suspend fun getCodesResponse(getRatesRequest: GetRatesRequest) = - apiInterface.getRates(getRatesRequest) + suspend fun getCodesResponse(getCodeRequest: GetCodeRequest) = + apiInterface.getCodes(getCodeRequest) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index b6dd103..1fb6e93 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -8,20 +8,26 @@ import android.util.Log import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager +import com.google.gson.Gson import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import com.nivesh.production.bajajfd.model.GetCodeRequest +import com.nivesh.production.bajajfd.model.GetCodeResponse import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.ui.fragment.* import com.nivesh.production.bajajfd.ui.providerfactory.GetRatesModelProviderFactory import com.nivesh.production.bajajfd.util.Colors +import com.nivesh.production.bajajfd.util.Resource +import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { private lateinit var binding: ActivityBajajFdBinding - lateinit var viewModel: StepOneBajajFDViewModel + lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel + lateinit var viewModel: BajajFDViewModel override fun onCreate(savedInstanceState: Bundle?) { @@ -35,8 +41,17 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { setContentView(binding.root) //start Repository - val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient)) - viewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java] + val viewModelProviderFactory = + GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient)) + stepOneBajajFDViewModel = + ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java] + + viewModel = ViewModelProvider(this, viewModelProviderFactory)[viewModel::class.java] + getCodeApi() + + + + binding.imgBack.setOnClickListener { finish() @@ -117,6 +132,43 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { }) } + private fun getCodeApi() { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = "BajajFD" + getCodeRequest.Category = "InterestPayoutFreq" + getCodeRequest.Language = "EN" + getCodeRequest.InputValue = "" + viewModel.getCode(getCodeRequest) + viewModel.getRatesMutableData.observe(this) { response -> + when (response) { + is Resource.Success -> { + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> getCodeData(getCodeResponse) + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + } + + private fun getCodeData(codeResponse: GetCodeResponse) { + + } + // set Default Step private fun defaultShape(): GradientDrawable { val shape = GradientDrawable() diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index 39d3bdc..3f9f587 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -17,7 +17,7 @@ import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity -import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation +import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel @@ -47,7 +47,7 @@ class StepOneBajajFDFragment : Fragment() { _binding = FragmentBajajfdStepOneBinding.inflate(inflater, container, false) val root = binding.root - stepOneBajajFDViewModel = (activity as BajajFdMainActivity).viewModel + stepOneBajajFDViewModel = (activity as BajajFdMainActivity).stepOneBajajFDViewModel // Amount binding.edtAmount.addTextChangedListener(object : TextWatcher { @@ -70,15 +70,15 @@ class StepOneBajajFDFragment : Fragment() { R.array.interestPayoutList ) ) - binding.tvInterestPayout.setAdapter(adapter) - binding.tvInterestPayout.setOnItemClickListener { parent, view, position, id -> + binding.spInterestPayout.setAdapter(adapter) + binding.spInterestPayout.setOnItemClickListener { parent, view, position, id -> binding.spInterestPayout.error = null - binding.tvFrequency.text = binding.tvInterestPayout.text + binding.tvFrequency.text = binding.spInterestPayout.text } // Tenure - binding.tvTenure.setAdapter(adapter) - binding.tvTenure.setOnItemClickListener { parent, view, position, id -> + binding.spTenure.setAdapter(adapter) + binding.spTenure.setOnItemClickListener { parent, view, position, id -> // getRatesApi() } @@ -112,17 +112,18 @@ class StepOneBajajFDFragment : Fragment() { } private fun validation(): Boolean { - if (binding.edtAmount.text?.isEmpty()!!) { - return false - binding.tlDepositAmount.error = "" - } else if (binding.tvInterestPayout.text.isEmpty()) { - return false - binding.spInterestPayout.error = "" - } else if (binding.tvTenure.text.isEmpty()) { - return false - binding.spInterestTenure.error = "" + return if (binding.edtAmount.text.toString().isEmpty()) { + Common.commonErrorMethod(binding.edtAmount, binding.tlDepositAmount, "") + } else if (binding.spInterestPayout.text.isEmpty()) { + Common.commonSpinnerErrorMethod( + binding.spInterestPayout, + binding.tlInterestPayout, + "" + ) + } else if (binding.spTenure.text.isEmpty()) { + Common.commonSpinnerErrorMethod(binding.spTenure, binding.tlInterestTenure, "") } else { - return true + true } } 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 4c8ed32..6ad06ab 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,7 +67,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlMobileNumber.error = null } }) - binding.edtDOB.setOnClickListener{ + binding.edtDOB.setOnClickListener { } binding.edtPANNumber.addTextChangedListener(object : TextWatcher { @@ -321,7 +321,7 @@ class StepTwoBajajFDFragment : Fragment() { } }) - binding.edtNomineeDOB.setOnClickListener{ + binding.edtNomineeDOB.setOnClickListener { } @@ -427,7 +427,7 @@ class StepTwoBajajFDFragment : Fragment() { binding.tlBankName.error = null } }) - binding.edtbankBranch.addTextChangedListener(object : TextWatcher { + binding.edtBankBranch.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } @@ -452,71 +452,76 @@ class StepTwoBajajFDFragment : Fragment() { binding.tvBankDetails.setOnClickListener { } - // if ( validation()) + + binding.btnNext.setOnClickListener { + if (validation()) { + + } + } return root } private fun validation(): Boolean { - if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") + return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText + commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") } else if (binding.edtMobileNumber.text?.length != 10) { // EditText - return commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") + commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") } else if (binding.edtMobileNumber.text?.length == 10 && !isIndianMobileNo(binding.edtMobileNumber.text.toString())) { // EditText - return commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") + commonErrorMethod(binding.edtMobileNumber, binding.tlMobileNumber, "") } else if (binding.edtDOB.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtDOB, binding.tlDOB, "") + commonErrorMethod(binding.edtDOB, binding.tlDOB, "") } else if (binding.edtPANNumber.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtPANNumber, binding.tlPanNumber, "") + commonErrorMethod(binding.edtPANNumber, binding.tlPanNumber, "") } else if (isValidPan(binding.edtPANNumber.text.toString())) { // EditText - return commonErrorMethod(binding.edtPANNumber, binding.tlPanNumber, "") + commonErrorMethod(binding.edtPANNumber, binding.tlPanNumber, "") } else if (binding.spTitle.text.isEmpty()) { // Spinner - return commonSpinnerErrorMethod(binding.spTitle, binding.tlTitle, "") + commonSpinnerErrorMethod(binding.spTitle, binding.tlTitle, "") } else if (binding.edtFirstName.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtFirstName, binding.tlFirstName, "") + commonErrorMethod(binding.edtFirstName, binding.tlFirstName, "") } else if (isValidName(binding.edtFirstName.text.toString())) { // EditText - return commonErrorMethod(binding.edtFirstName, binding.tlFirstName, "") + commonErrorMethod(binding.edtFirstName, binding.tlFirstName, "") } else if (binding.edtMiddleName.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtMiddleName, binding.tlMiddleName, "") + commonErrorMethod(binding.edtMiddleName, binding.tlMiddleName, "") } else if (isValidName(binding.edtMiddleName.text.toString())) { // EditText - return commonErrorMethod(binding.edtMiddleName, binding.tlMiddleName, "") + commonErrorMethod(binding.edtMiddleName, binding.tlMiddleName, "") } else if (binding.edtLastName.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtLastName, binding.tlLastName, "") + commonErrorMethod(binding.edtLastName, binding.tlLastName, "") } else if (isValidName(binding.edtLastName.text.toString())) { // EditText - return commonErrorMethod(binding.edtLastName, binding.tlLastName, "") + commonErrorMethod(binding.edtLastName, binding.tlLastName, "") } else if (binding.spGender.text.toString().isEmpty()) { // Spinner - return commonSpinnerErrorMethod(binding.spGender, binding.tlGender, "") + commonSpinnerErrorMethod(binding.spGender, binding.tlGender, "") } else if (binding.edtEmail.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtEmail, binding.tlEmail, "") + commonErrorMethod(binding.edtEmail, binding.tlEmail, "") } else if (isValidEmail(binding.edtEmail.text.toString())) { // EditText - return commonErrorMethod(binding.edtEmail, binding.tlEmail, "") + commonErrorMethod(binding.edtEmail, binding.tlEmail, "") } else if (binding.edtOccupation.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtOccupation, binding.tlOccupation, "") + commonErrorMethod(binding.edtOccupation, binding.tlOccupation, "") } else if (binding.edtQualification.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtQualification, binding.tlQualification, "") + commonErrorMethod(binding.edtQualification, binding.tlQualification, "") } else if (binding.spMarital.text.toString().isEmpty()) { // Spinner - return commonSpinnerErrorMethod(binding.spMarital, binding.tlMarital, "") + commonSpinnerErrorMethod(binding.spMarital, binding.tlMarital, "") } else if (binding.spRelation.text.toString().isEmpty()) { // Spinner - return commonSpinnerErrorMethod(binding.spRelation, binding.tlRelation, "") + commonSpinnerErrorMethod(binding.spRelation, binding.tlRelation, "") } else if (binding.edtRelationName.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtRelationName, binding.tlRelationName, "") + commonErrorMethod(binding.edtRelationName, binding.tlRelationName, "") } else if (binding.edtAddressLine1.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtAddressLine1, binding.tlAddressLine1, "") + commonErrorMethod(binding.edtAddressLine1, binding.tlAddressLine1, "") } else if (binding.edtAddressLine2.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtAddressLine2, binding.tlAddressLine2, "") + commonErrorMethod(binding.edtAddressLine2, binding.tlAddressLine2, "") } else if (binding.edtState.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtState, binding.tlState, "") + commonErrorMethod(binding.edtState, binding.tlState, "") } else if (binding.edtCity.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtCity, binding.tlCity, "") + commonErrorMethod(binding.edtCity, binding.tlCity, "") } else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtPinCode, binding.tlPinCode, "") + commonErrorMethod(binding.edtPinCode, binding.tlPinCode, "") } else if (binding.edtIFSC.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtIFSC, binding.tlIFSC, "") + commonErrorMethod(binding.edtIFSC, binding.tlIFSC, "") } else if (binding.edtAccountNumber.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtAccountNumber, binding.tlAccountNumber, "") + commonErrorMethod(binding.edtAccountNumber, binding.tlAccountNumber, "") } else if (binding.edtBankName.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtBankName, binding.tlBankName, "") - } else if (binding.edtbankBranch.text.toString().isEmpty()) { // EditText - return commonErrorMethod(binding.edtbankBranch, binding.tlBankBranchName, "") + commonErrorMethod(binding.edtBankName, binding.tlBankName, "") + } else if (binding.edtBankBranch.text.toString().isEmpty()) { // EditText + commonErrorMethod(binding.edtBankBranch, binding.tlBankBranchName, "") } else { return true } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt new file mode 100644 index 0000000..13db406 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt @@ -0,0 +1,32 @@ +package com.nivesh.production.bajajfd.viewModel + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +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 +import kotlinx.coroutines.launch + +class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { + // TODO: Implement the ViewModel + val getRatesMutableData: MutableLiveData> = MutableLiveData() + + fun getCode(getCodeRequest: GetCodeRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.getCodesResponse(getCodeRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + private fun handleRatesResponse(response: retrofit2.Response): Resource { + if (response.isSuccessful) { + response.body()?.let { resultResponse -> + return Resource.Success(resultResponse) + } + } + return Resource.Error(response.message()) + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/bank_detail_select.xml b/app/src/main/res/layout/bank_detail_select.xml index 3712e38..9368de9 100644 --- a/app/src/main/res/layout/bank_detail_select.xml +++ b/app/src/main/res/layout/bank_detail_select.xml @@ -15,7 +15,7 @@ android:background="@color/grey_bg" android:drawablePadding="@dimen/margin_5" android:padding="@dimen/margin_3" - android:text="Bank Details" + android:text="@string/bankDetails" android:textColor="@color/black" app:layout_constraintBottom_toTopOf="@+id/rVBankList" app:layout_constraintEnd_toEndOf="parent" @@ -42,9 +42,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:text="+ Add New Account" + android:text="@string/addNewAccount" android:textColor="@color/black" android:paddingStart="@dimen/margin_5" + android:paddingEnd="@dimen/margin_1" app:layout_constraintBottom_toTopOf="@+id/rlPaymentMode" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" @@ -67,7 +68,7 @@ style="@style/regularStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="UPI" + android:text="@string/Upi" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteX="11dp" tools:layout_editor_absoluteY="355dp" /> @@ -78,7 +79,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/margin_150" - android:text="NetBanking" + android:text="@string/netBanking" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteX="11dp" tools:layout_editor_absoluteY="355dp" /> @@ -104,7 +105,7 @@ style="@style/semiBoldStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Payment mode" + android:text="@string/paymentMode" android:textColor="@color/black" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteX="5dp" @@ -117,7 +118,7 @@ android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:gravity="center_vertical" - android:text="View available payment modes" + android:text="@string/viewAvailablePaymentModes" android:textColor="@color/blue_text_color" android:textSize="@dimen/text_size_10" tools:layout_editor_absoluteX="5dp" diff --git a/app/src/main/res/layout/fragment_bajajfd_step_five.xml b/app/src/main/res/layout/fragment_bajajfd_step_five.xml index c21dee4..f677e4a 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_five.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_five.xml @@ -24,16 +24,15 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/margin_5" - android:layout_marginTop="@dimen/margin_5" android:layout_marginRight="@dimen/margin_5" android:padding="@dimen/margin_10"> @@ -156,7 +154,7 @@ style="@style/semiBoldStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Download Invoice" + android:text="@string/downloadInvoice" android:textColor="@color/blue" android:textSize="@dimen/text_size_16" app:layout_constraintBottom_toBottomOf="@+id/btnNext" @@ -172,7 +170,7 @@ android:layout_gravity="center_vertical" android:layout_marginStart="16dp" android:backgroundTint="@color/colorPrimary" - android:text="View order" + android:text="@string/viewOrder" android:textColor="@color/white" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -187,7 +185,7 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:backgroundTint="@color/blue" - android:text="Retry" + android:text="@string/retry" android:textColor="@color/white" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/fragment_bajajfd_step_four.xml b/app/src/main/res/layout/fragment_bajajfd_step_four.xml index 0b8cd45..6dd11d2 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_four.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_four.xml @@ -41,24 +41,24 @@ + app:layout_constraintTop_toTopOf="parent" /> @@ -84,15 +87,14 @@ style="@style/regularStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/margin_10" - android:paddingEnd="@dimen/margin_10" - android:paddingStart="0dp" - android:text="Invested Amount" + android:layout_marginStart="@dimen/margin_15" + android:layout_marginTop="@dimen/margin_10" + android:padding="@dimen/margin_5" + android:text="@string/investedAmount" android:textSize="@dimen/text_size_14" app:layout_constraintBottom_toTopOf="@id/lblTenure" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvMakePayment" - app:layout_constraintVertical_bias="0.0" /> + app:layout_constraintTop_toBottomOf="@+id/tvMakePayment" /> + app:layout_constraintTop_toBottomOf="@+id/tvMakePayment" /> + app:layout_constraintTop_toBottomOf="@+id/lblMakePayment" /> + app:layout_constraintTop_toBottomOf="@+id/tvInvestedAmount" /> + app:layout_constraintTop_toBottomOf="@+id/lblTenure" /> + app:layout_constraintTop_toBottomOf="@+id/tvTenure" /> + app:layout_constraintTop_toBottomOf="@+id/lblInterestPayout" /> + app:layout_constraintTop_toBottomOf="@+id/tvInterestPayout" /> + app:layout_constraintTop_toBottomOf="@+id/lblRateOfInterest" /> + app:layout_constraintTop_toBottomOf="@+id/tvTermsCondition" /> + app:layout_constraintTop_toBottomOf="@+id/swDirectorBajajFinance" /> + app:layout_constraintTop_toBottomOf="@+id/swPromoterBajajFinance" /> @@ -292,11 +263,9 @@ style="@style/regularStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="5dp" - android:layout_marginBottom="8dp" - android:text="Are you a politicallly exposed person" + android:layout_marginStart="@dimen/margin_15" + android:layout_marginEnd="@dimen/margin_15" + android:text="@string/politicallyExposedPerson" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/swShareholder" /> @@ -306,21 +275,19 @@ style="@style/regularStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="5dp" - android:layout_marginBottom="8dp" - android:text="I am not a citizen, national or tax resident of any country outside of India" + android:layout_marginStart="@dimen/margin_15" + android:layout_marginEnd="@dimen/margin_15" + android:text="@string/outsideOfIndia" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/swPoliticallyExposed" - app:layout_constraintVertical_bias="0.0" /> + app:layout_constraintTop_toBottomOf="@+id/swPoliticallyExposed" /> @@ -328,8 +295,8 @@ android:id="@+id/tvTermsAndCondition" android:layout_width="322dp" android:layout_height="74dp" - android:layout_marginTop="15dp" - android:layout_marginEnd="10dp" + android:layout_marginTop="@dimen/margin_15" + android:layout_marginEnd="@dimen/margin_10" android:text="@string/terms_condition" android:textColor="@color/black" android:textSize="@dimen/text_size_10" @@ -367,7 +334,7 @@ android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:backgroundTint="@color/colorPrimary" - android:text="View Order" + android:text="@string/viewOrder" android:textColor="@color/white" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_bajajfd_step_one.xml b/app/src/main/res/layout/fragment_bajajfd_step_one.xml index 6ca28e2..b2bcb06 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_one.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_one.xml @@ -100,7 +100,7 @@ + app:layout_constraintTop_toBottomOf="@+id/tlInterestPayout"> - 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 dbf9d9b..de116af 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -6,20 +6,20 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/Nivesh_color_AppBg" - tools:context="com.nivesh.production.bajajfd.ui.fragment.StepFourBajajFDFragment"> + tools:context=".ui.fragment.StepFourBajajFDFragment"> + app:layout_constraintTop_toTopOf="parent"> - + + + + + + + + + + + + + + - + app:layout_constraintRight_toRightOf="parent"> + + + + app:layout_constraintStart_toStartOf="parent"/> + app:layout_constraintStart_toEndOf="@+id/btnBack" /> \ No newline at end of file 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 bdde337..ec8292b 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -60,7 +60,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/margin_1" - android:text="Ratings: CRISIL AAA/Stable & ICRA AAA/Stable" + android:text="@string/schemeRating" android:textColor="@color/light_text" android:textSize="@dimen/text_size_12" /> @@ -71,7 +71,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_15" android:layout_marginBottom="@dimen/margin_1" - android:text="All fields are mandatory other then optional" + android:text="@string/mandatoryField" android:textColor="@color/light_text" android:textSize="@dimen/text_size_14" /> @@ -86,7 +86,7 @@ android:background="@color/grey_bg" android:paddingStart="@dimen/margin_18" android:paddingEnd="@dimen/margin_15" - android:text="Personal Details" + android:text="@string/personalDetails" android:textColor="@color/black" app:drawableEndCompat="@drawable/svg_down_arrow" /> @@ -103,7 +103,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_5" - android:hint="Enter Mobile Number"> + android:hint="@string/enterMobileNumber"> + android:hint="@string/enterDateOfBirth"> + android:hint="@string/enterPanNumber"> + android:hint="@string/enterFirstName"> @@ -247,7 +250,10 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="@dimen/margin_48" - android:layout_margin="@dimen/margin_5" + android:layout_marginTop="@dimen/margin_10" + android:layout_marginBottom="@dimen/margin_5" + android:layout_marginStart="@dimen/margin_5" + android:layout_marginEnd="@dimen/margin_5" app:hintEnabled="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -271,7 +277,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/margin_5" - android:hint="Enter Email Address"> + android:hint="@string/enterEmailAddress"> + android:hint="@string/enterOccupation"> + android:hint="@string/enterQualification"> - - - - - - - - - - - - - - - - - - - - + android:hint="@string/relationName"> + android:hint="@string/enterAddress1"> + android:hint="@string/enterAddress2"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:hint="@string/state"> + android:hint="@string/city"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + android:hint="@string/nomineeFirstName"> + android:hint="@string/nomineeLastName"> + android:hint="@string/nomineeDateOfBirth"> @@ -833,7 +763,6 @@ android:id="@+id/llBankDetails" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="@dimen/margin_5" android:orientation="vertical" android:padding="@dimen/margin_10"> @@ -842,8 +771,8 @@ style="@style/regularStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="@dimen/margin_3" - android:text="Account type *" + android:padding="@dimen/margin_5" + android:text="@string/accountType" android:textColor="@color/black" android:textSize="@dimen/text_size_14" app:layout_constraintTop_toBottomOf="@+id/tvFdRating" @@ -859,14 +788,14 @@ android:layout_height="wrap_content" android:buttonTint="@color/black" android:checked="true" - android:text="Savings account" /> + android:text="@string/savingsAccount" /> + android:text="@string/currentAccount" /> @@ -875,7 +804,8 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="Enter IFSC Code"> + android:layout_margin="@dimen/margin_5" + android:hint="@string/enterIfscCode"> + android:layout_margin="@dimen/margin_5" + android:hint="@string/enterAccountNumber"> + android:layout_height="wrap_content" + android:textSize="@dimen/text_size_14"/> @@ -906,9 +836,8 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/margin_8" - android:layout_marginBottom="@dimen/margin_8" - android:hint="Enter Bank Name"> + android:layout_margin="@dimen/margin_5" + android:hint="@string/enterBankName"> + android:layout_margin="@dimen/margin_5" + android:hint="@string/enterBranchName"> @@ -951,7 +879,7 @@ android:layout_centerVertical="true" android:layout_marginTop="12dp" android:padding="@dimen/margin_3" - android:text="Payment mode" + android:text="@string/paymentMode" android:textColor="@color/black" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteX="5dp" /> @@ -964,7 +892,7 @@ android:layout_centerVertical="true" android:layout_marginTop="12dp" android:padding="@dimen/margin_3" - android:text="Eligible bank option" + android:text="@string/eligibleBankOption" android:textColor="@color/blue_text_color" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteX="5dp" /> @@ -982,14 +910,14 @@ android:layout_height="wrap_content" android:buttonTint="@color/black" android:checked="true" - android:text="UPI" /> + android:text="@string/Upi" /> + android:text="@string/netBanking" /> @@ -1001,7 +929,7 @@ android:layout_marginTop="12dp" android:layout_marginBottom="@dimen/margin_20" android:padding="@dimen/margin_3" - android:text="Upto Rs. 1 lakh only" + android:text="@string/upto1LakhOnly" android:textColor="@color/gray_text_color" android:textSize="@dimen/text_size_14" tools:layout_editor_absoluteX="5dp" /> diff --git a/app/src/main/res/layout/fragmnet_step_fail.xml b/app/src/main/res/layout/fragment_step_fail.xml similarity index 95% rename from app/src/main/res/layout/fragmnet_step_fail.xml rename to app/src/main/res/layout/fragment_step_fail.xml index 0c4995c..d6f2bd3 100644 --- a/app/src/main/res/layout/fragmnet_step_fail.xml +++ b/app/src/main/res/layout/fragment_step_fail.xml @@ -49,7 +49,7 @@ style="@style/regularStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Ratings: CRISIL AAA/Stable & ICRA AAA/Stable" + android:text="@string/schemeRating" android:textColor="@color/light_text" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -91,7 +91,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" - android:text="Sorry!" + android:text="@string/sorry" android:textColor="@color/black" android:textSize="@dimen/text_size_16" app:layout_constraintEnd_toEndOf="parent" @@ -105,7 +105,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:text="Your transaction is unsuccessful." + android:text="@string/TransactionIsUnsuccessful" android:textColor="@color/black" android:textSize="@dimen/text_size_16" app:layout_constraintEnd_toEndOf="parent" @@ -120,7 +120,7 @@ android:layout_height="wrap_content" android:layout_marginTop="16dp" android:gravity="center" - android:text="Sorry for the inconvenience please try again later" + android:text="@string/tryAgainLater" android:textColor="@color/black" android:textSize="@dimen/text_size_14" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml new file mode 100644 index 0000000..363792e --- /dev/null +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -0,0 +1,4 @@ + + + BajajFdLib + \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index f52625a..9b4e1ef 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,4 +1,4 @@ - +