From ca2318df9494eb5bab9f632b7f08fa5a9be849f5 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Mon, 2 Jan 2023 19:29:46 +0530 Subject: [PATCH 1/8] changes in Network error handling --- .../production/bajajfd/api/ApiClient.kt | 2 +- .../bajajfd/interfaces/ApiInterface.kt | 2 +- .../nivesh/production/bajajfd/model/Errors.kt | 6 ++ .../production/bajajfd/model/Response.kt | 4 +- .../production/bajajfd/model/ResponseX.kt | 2 +- .../production/bajajfd/model/ResponseXX.kt | 2 +- .../production/bajajfd/model/ResponseXXXX.kt | 2 +- .../bajajfd/model/ResponseXXXXXXXX.kt | 2 +- .../bajajfd/model/ResponseXXXXXXXXX.kt | 2 +- .../bajajfd/model/ResponseXXXXXXXXXXX.kt | 2 +- .../ui/activity/BajajFdMainActivity.kt | 71 +++++++++------ .../ui/fragment/StepOneBajajFDFragment.kt | 43 +++++++--- .../ui/fragment/StepThreeBajajFDFragment.kt | 2 +- .../ui/fragment/StepTwoBajajFDFragment.kt | 86 ++++++++++++++----- .../nivesh/production/bajajfd/util/Common.kt | 53 ++++++++---- .../bajajfd/viewModel/BajajFDViewModel.kt | 28 +++--- .../viewModel/StepFourBajajFDViewModel.kt | 31 +++---- .../viewModel/StepOneBajajFDViewModel.kt | 21 +++-- .../viewModel/StepThreeBajajFDViewModel.kt | 17 +--- .../viewModel/StepTwoBajajFDViewModel.kt | 14 +-- 20 files changed, 241 insertions(+), 151 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt index d89586a..aaa5a11 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt @@ -26,7 +26,7 @@ class ApiClient { .client(client) .build() } - val getApiClient by lazy { + val getApiClient: ApiInterface by lazy { client.create(ApiInterface::class.java) } } 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 9d07be8..1e7cdd1 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 @@ -91,7 +91,7 @@ interface ApiInterface { suspend fun getFDStepsCount( @Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String - ): Response + ): Response @POST("WebApi/api/GetClientDetailV2_S") suspend fun getClientDetails( diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt new file mode 100644 index 0000000..a2c80e2 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Errors.kt @@ -0,0 +1,6 @@ +package com.nivesh.production.bajajfd.model + +data class Errors( + val ErrorCode: Int, + val ErrorMessage: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt index 64ebb11..c479c7f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/Response.kt @@ -1,5 +1,7 @@ +import com.nivesh.production.bajajfd.model.Errors + data class Response( - val Errors: List, + val Errors: List, val Message: String, var ROIDatalist: MutableList, val Status: String, 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 index e81f28d..0d08d82 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseX( - val Errors: List, + val Errors: List, val GetCodesList: List, val Message: String, val Status: String, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt index 69077da..1ec3e62 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXX( - val Errors: Any, + val Errors: List, val MaturityAmount: Double, val Message: String, val Status: String, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt index 89521d8..0c37922 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXXXX( - val Errors: Any, + val Errors: List, val Message: String, val Status: String, val StatusCode: Int, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt index b674b23..a48dfa5 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXX.kt @@ -2,7 +2,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXXXXXXXX( val BankList: List, - val Errors: List, + val Errors: List, val Message: String, val Status: String, val StatusCode: Int diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt index 67165a6..128fad0 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXXXXXXXXX( - val message: Any, + val message: String, val status: String, val status_code: Int ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt index 0653d1d..cf7ddc5 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt @@ -1,7 +1,7 @@ package com.nivesh.production.bajajfd.model data class ResponseXXXXXXXXXXX( - val Errors: Any, + val Errors: List, val FDCreationDetailsResponse: FDCreationDetailsResponse, val Message: String, val Status: String, 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 0e07da8..a915b91 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 @@ -19,6 +19,7 @@ import com.nivesh.production.bajajfd.ui.providerfactory.* import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.defaultShape import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape +import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.* @@ -43,7 +44,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { var nomineeGuardianDetails: NomineeGuardianDetails var getClientDetailsResponse: getClientDetailsResponse - var stepCount : Int = 0 + private var stepCount: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -120,17 +121,19 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { stepCount = stepsCountResponse.Response.StepsCount getClientDetailsApi(stepsCountResponse.Response.StepsCount) } - // 650 -> refreshToken() + 650 -> refreshToken(fdStepsCount) else -> { - + showDialogValidation( + this@BajajFdMainActivity, + stepsCountResponse.Response.Errors[0].ErrorMessage + ) } } } } - is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(this@BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -140,6 +143,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } } + private fun refreshToken(fdStepsCount: FDStepsCountRequest) { + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { + + } + } + + private fun getClientDetailsApi(stepsCount: Int) { if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { val getClientDetailsRequest = getClientDetailsRequest() @@ -183,14 +193,16 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { checkFDCKYCApi() } // 650 -> refreshToken() - else -> {} + else -> { + showDialogValidation(this@BajajFdMainActivity, response.message) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(this@BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -282,10 +294,11 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } private fun checkFDCKYCApi() { - if (Common.isNetworkAvailable(this@BajajFdMainActivity)){ + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { 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.Mobile = + getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE checkFDKYCRequest.DOB = getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB checkFDKYCRequest.PAN = @@ -309,14 +322,19 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { fdInvestmentDetails.CustomerType = "" } // 650 -> refreshToken() - else -> {} + else -> { + showDialogValidation( + this@BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(this@BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -352,13 +370,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { // step 2 response override fun stepTwoApi(data: CreateFDRequest) { Log.e("stepTwoApi", " response ---> $data") - if (stepCount == 4) { - // go to step 3 image Upload - binding.viewPager.currentItem = 2 - }else{ - // call create fd api bypass step 3 - createFDApi(data , 2) - } + if (stepCount == 4) { + // go to step 3 image Upload + binding.viewPager.currentItem = 2 + } else { + // call create fd api bypass step 3 + createFDApi(data, 2) + } } @@ -376,14 +394,14 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } private fun createFDApi(data: CreateFDRequest, currentItem: Int) { - if (Common.isNetworkAvailable(this@BajajFdMainActivity)){ + if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { viewModel.createFDApi(data, token) viewModel.getFDResponseMutableData.observe(this) { response -> when (response) { is Resource.Success -> { Log.e("response", "-->$response") - val createFDApplicationResponse : CreateFDApplicationResponse = + val createFDApplicationResponse: CreateFDApplicationResponse = Gson().fromJson( response.data?.toString(), CreateFDApplicationResponse::class.java @@ -392,17 +410,23 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { when (code) { 200 -> { binding.viewPager.currentItem = currentItem - StepFourBajajFDFragment.getInstance(this).getFDData(createFDApplicationResponse) + StepFourBajajFDFragment.getInstance(this) + .getFDData(createFDApplicationResponse) } // 650 -> refreshToken() - else -> {} + else -> { + showDialogValidation( + this@BajajFdMainActivity, + createFDApplicationResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + showDialogValidation(this@BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -416,5 +440,4 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } - } \ No newline at end of file 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 9f83647..fbe5465 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 @@ -206,14 +206,19 @@ class StepOneBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -248,14 +253,19 @@ class StepOneBajajFDFragment : Fragment() { maxAmountApi() } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -284,14 +294,19 @@ class StepOneBajajFDFragment : Fragment() { listOfMaxAmount = getCodeResponse.Response.GetCodesList } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -348,7 +363,10 @@ class StepOneBajajFDFragment : Fragment() { } // 650 -> refreshToken() else -> { - + Common.showDialogValidation( + activity as BajajFdMainActivity, + getMaturityAmountResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -356,7 +374,7 @@ class StepOneBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -462,14 +480,19 @@ class StepOneBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getRatesResponse.Response.Errors[0].ErrorMessage + ) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { 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 4612c7f..45290d2 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 @@ -268,7 +268,7 @@ class StepThreeBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { 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 ce8d2a9..c5e7dd6 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 @@ -761,7 +761,9 @@ class StepTwoBajajFDFragment : Fragment() { } // 650 -> refreshToken() else -> { - + Common.showDialogValidation( + activity as BajajFdMainActivity, + getIFSCCodeListResponse.Response.message) } } } @@ -769,7 +771,7 @@ class StepTwoBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -800,7 +802,9 @@ class StepTwoBajajFDFragment : Fragment() { } // 650 -> refreshToken() else -> { - + Common.showDialogValidation( + activity as BajajFdMainActivity, + getIFSCCodeResponse.Response.message) } } } @@ -808,7 +812,7 @@ class StepTwoBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -939,7 +943,7 @@ class StepTwoBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1023,14 +1027,18 @@ class StepTwoBajajFDFragment : Fragment() { } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1074,14 +1082,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1133,14 +1145,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1185,14 +1201,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1237,14 +1257,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1289,14 +1313,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1357,14 +1385,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + stateListResponse.response.message) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1429,14 +1461,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + cityListResponse.response.message) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { @@ -1466,14 +1502,18 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getFDBankListResponse.Response.Errors[0].ErrorMessage) + } } } } is Resource.Error -> { response.message?.let { message -> - Log.e(" ", "An error occurred:$message") + Common.showDialogValidation(activity as BajajFdMainActivity, message) } } is Resource.Loading -> { 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 5cc34c9..fc36a35 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 @@ -1,6 +1,5 @@ package com.nivesh.production.bajajfd.util -import android.annotation.SuppressLint import android.app.Activity import android.app.AlertDialog import android.content.Context @@ -14,10 +13,11 @@ import android.util.Patterns 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.bajajfd.R +import retrofit2.HttpException +import java.io.IOException import java.text.SimpleDateFormat -import java.time.LocalDate -import java.time.format.DateTimeFormatter import java.util.* import java.util.regex.Matcher import java.util.regex.Pattern @@ -25,7 +25,7 @@ import java.util.regex.Pattern class Common { - companion object{ + companion object { /** *Before use this method write following code in model class app:Application(in activity and model) @@ -33,10 +33,12 @@ class Common { val connectivityManager = getApplication().getSystemService(.... **/ //internet check - fun isNetworkAvailable(activity: Activity): Boolean { + fun isNetworkAvailable(activity: Activity): Boolean { val connectivityManager = activity.getSystemService( Context.CONNECTIVITY_SERVICE ) as ConnectivityManager + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { val activeNetwork = connectivityManager.activeNetwork ?: return false @@ -63,11 +65,11 @@ class Common { //valid email check fun isValidEmail(target: String?): Boolean { - return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches() + return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches() } //valid Name Check - fun isValidName(nameText: String?): Boolean { + fun isValidName(nameText: String?): Boolean { val pattern = Pattern.compile(("^[a-zA-Z\\s]{2,70}$")) val matcher = pattern.matcher(nameText.toString()) return matcher.matches() @@ -95,7 +97,7 @@ class Common { fun removeError(textInputLayout: TextInputLayout) { if (textInputLayout.error != null) { textInputLayout.error = null - if(textInputLayout.isErrorEnabled){ + if (textInputLayout.isErrorEnabled) { textInputLayout.isErrorEnabled = false; } } @@ -127,7 +129,7 @@ class Common { } // set Default Step - fun defaultShape(): GradientDrawable { + fun defaultShape(): GradientDrawable { val shape = GradientDrawable() shape.shape = GradientDrawable.OVAL shape.setColor(Color.WHITE) @@ -136,7 +138,7 @@ class Common { } // set Selected Step - fun selectedShape(): GradientDrawable { + fun selectedShape(): GradientDrawable { val shape = GradientDrawable() shape.shape = GradientDrawable.OVAL shape.setColor(Color.parseColor(Colors.colorDefault)) @@ -144,13 +146,13 @@ class Common { return shape } - fun commonErrorMethod( + fun commonErrorMethod( inputText: TextInputEditText, inputError: TextInputLayout, strMessage: String ): Boolean { inputText.requestFocus() - inputError.error = strMessage + inputError.error = strMessage return false } @@ -164,7 +166,7 @@ class Common { return false } - fun commonSpinnerErrorMethod( + fun commonSpinnerErrorMethod( inputText: MaterialAutoCompleteTextView, inputError: TextInputLayout, strMessage: String @@ -174,12 +176,31 @@ class Common { return false } - fun getDate(string :String): String { + fun getDate(string: String): String { val input = SimpleDateFormat("dd/MM/yyyy", Locale.US) - val mDate : Date? = input.parse(string) - // val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US) + val mDate: Date? = input.parse(string) val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) return simpleDateFormat.format(mDate as Date) } + + fun handleRatesResponse(response: retrofit2.Response): Resource { + try { + if (response.isSuccessful && response.body() != null) { + response.body()?.let { resultResponse -> + return Resource.Success(resultResponse) + } + } + } catch (t: Throwable) { + return when (t) { + is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) + is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) + else -> Resource.Error(t.localizedMessage?.toString() ?: "") + } + } + return Resource.Error(response.message()) + } + } + + } \ No newline at end of file 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 index 68fed01..e26e127 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt @@ -6,9 +6,9 @@ import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject import com.nivesh.production.bajajfd.model.CreateFDRequest import com.nivesh.production.bajajfd.model.FDStepsCountRequest -import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.model.getClientDetailsRequest import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch @@ -30,19 +30,27 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() } val getFDResponseMutableData: MutableLiveData> = MutableLiveData() - fun createFDApi(getRatesRequest: CreateFDRequest, token :String) = viewModelScope.launch { + fun createFDApi(getRatesRequest: CreateFDRequest, token: String) = viewModelScope.launch { getFDResponseMutableData.postValue(Resource.Loading()) val response = mainRepository.createFDKYCResponse(getRatesRequest, token) getFDResponseMutableData.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()) - } +// private fun handleRatesResponse(response: retrofit2.Response): Resource { +// try { +// if ( response.isSuccessful && response.body() != null) { +// response.body()?.let { resultResponse -> +// return Resource.Success(resultResponse) +// } +// } +// } catch (t: Throwable) { +// return when (t) { +// is IOException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause)) +// is HttpException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause)) +// else -> Resource.Error(t.localizedMessage?.toString() ?: "") +// } +// } +// return Resource.Error(response.message()) +// } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt index 7f55996..062b603 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt @@ -7,6 +7,7 @@ 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.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch @@ -21,46 +22,34 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie } val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + fun getFDDetails(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getFDDetailsMutableData.postValue(Resource.Loading()) val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) getFDDetailsMutableData.postValue(handleRatesResponse(response)) } - private val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun saveFDOtherData(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + fun saveFDOtherData(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) } - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } + fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) = + viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) + getRatesMutableData.postValue(handleRatesResponse(response)) } - return Resource.Error(response.message()) - - } - - - - fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) - } - fun finaliseFD(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + fun finaliseFD(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.finaliseFDResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) } - fun finaliseKYC(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.finaliseKYCResponse(getRatesRequest, token) getRatesMutableData.postValue(handleRatesResponse(response)) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt index 5ee7803..940ab26 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt @@ -9,15 +9,14 @@ import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - // TODO: Implement the ViewModel val getCodeMutableData: MutableLiveData> = MutableLiveData() - fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch { getCodeMutableData.postValue(Resource.Loading()) val response = mainRepository.getCodesResponse(requestBody, token) @@ -59,14 +58,14 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View getFDKYCMutableData.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()) - - } +// 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/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt index ed0803b..84330b9 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 @@ -1,33 +1,25 @@ package com.nivesh.production.bajajfd.viewModel -import androidx.lifecycle.* +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.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { private val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun documentsUpload(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.documentsUploadResponse(getRatesRequest, token) 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()) - - } - val getTitleMutableData: MutableLiveData> = MutableLiveData() fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { getTitleMutableData.postValue(Resource.Loading()) @@ -35,5 +27,4 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi getTitleMutableData.postValue(handleRatesResponse(response)) } - } \ 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 1260697..b76baef 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 @@ -6,25 +6,13 @@ import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - // TODO: Implement the ViewModel - private val getRatesMutableData: MutableLiveData> = MutableLiveData() val getPanCheckMutableData: MutableLiveData> = MutableLiveData() - - private fun handleRatesResponse(response: retrofit2.Response): Resource { - if (response.isSuccessful) { - response.body()?.let { resultResponse -> - return Resource.Success(resultResponse) - } - } - return Resource.Error(response.message()) - - } - fun panCheck(panCheck: PanCheckRequest, token: String) = viewModelScope.launch { getPanCheckMutableData.postValue(Resource.Loading()) val response = mainRepository.panCheck(panCheck, token) From 83d8a08b2ae2b0670c2fb61e8116f25a6fdf8ce3 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 3 Jan 2023 13:08:23 +0530 Subject: [PATCH 2/8] changes done --- .../bajajfd/adapter/CustomerListAdapter.kt | 74 ++++++++++ .../bajajfd/adapter/PaymentModeAdapter.kt | 88 ++++++++++++ .../bajajfd/interfaces/ApiInterface.kt | 2 +- .../bajajfd/model/FDDataResponse.kt | 12 ++ .../bajajfd/model/GetFDDetailsRequest.kt | 7 + .../bajajfd/model/GetFDDetailsResponse.kt | 5 + .../bajajfd/model/ResponseXXXXXXXXXXXX.kt | 9 ++ .../bajajfd/repositories/MainRepository.kt | 4 +- .../ui/activity/BajajFdMainActivity.kt | 5 +- .../ui/fragment/StepFourBajajFDFragment.kt | 90 ++++++------ .../ui/fragment/StepTwoBajajFDFragment.kt | 136 ++++++++++++++---- .../viewModel/StepFourBajajFDViewModel.kt | 5 +- .../viewModel/StepTwoBajajFDViewModel.kt | 6 + .../res/layout/fragment_bajajfd_step_four.xml | 81 ++--------- .../res/layout/fragment_bajajfd_step_two.xml | 47 +++--- .../res/layout/item_customer_list_preview.xml | 39 +++++ .../res/layout/item_payment_list_preview.xml | 39 +++++ app/src/main/res/values-hi-rIN/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 19 files changed, 492 insertions(+), 161 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt create mode 100644 app/src/main/res/layout/item_customer_list_preview.xml create mode 100644 app/src/main/res/layout/item_payment_list_preview.xml diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt new file mode 100644 index 0000000..ff19bee --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt @@ -0,0 +1,74 @@ +package com.nivesh.production.bajajfd.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.model.GetCodes + +class CustomerListAdapter( + private val bankList: List? +) : RecyclerView.Adapter() { + inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) + val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + } + + private var checkedPosition: Int = -2 + + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): BankListViewHolder { + return BankListViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.item_customer_list_preview, + parent, + false + ) + ) + } + + override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { + val bankList = bankList?.get(position) + if (bankList != null) { + holder.itemView.apply { + holder.tvBankName.text = bankList.Value + setOnClickListener { + onItemClickListener?.let { + it(bankList) + + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition + + } + } + } + } + } + } + + override fun getItemCount(): Int { + return bankList?.size!! + } + + private var onItemClickListener: ((GetCodes) -> Unit)? = null + + fun setOnItemClickListener(listener: (GetCodes) -> Unit) { + onItemClickListener = listener + } + + + fun getSelected(): GetCodes? { + return if (checkedPosition != -1) { + bankList?.get(checkedPosition) + } else null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt new file mode 100644 index 0000000..0bada10 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/PaymentModeAdapter.kt @@ -0,0 +1,88 @@ +package com.nivesh.production.bajajfd.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.model.GetCodes + +class PaymentModeAdapter( + private val bankList: List?, + private val selectedAccount: String? = null +) : RecyclerView.Adapter() { + inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) + val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) + } + + private var checkedPosition: Int = -2 + + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): BankListViewHolder { + return BankListViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.item_payment_list_preview, + parent, + false + ) + ) + } + + override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { + val bankList = bankList?.get(position) + if (bankList != null) { + holder.itemView.apply { + holder.tvBankName.text = bankList.Value + + if (selectedAccount == bankList.Value && checkedPosition == -2 + ) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + checkedPosition = holder.adapterPosition + } else if (checkedPosition == -1) { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } 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 + + } + } + } + } + } + } + + override fun getItemCount(): Int { + return bankList?.size!! + } + + private var onItemClickListener: ((GetCodes) -> Unit)? = null + + fun setOnItemClickListener(listener: (GetCodes) -> Unit) { + onItemClickListener = listener + } + + + fun getSelected(): GetCodes? { + return if (checkedPosition != -1) { + bankList?.get(checkedPosition) + } else null + } + +} \ 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 1e7cdd1..f8a0f7c 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 @@ -40,7 +40,7 @@ interface ApiInterface { @POST("WebApi_Bajaj/api/GetFDDetails") suspend fun getFDDetails( - @Body requestBody: RequestBody, + @Body requestBody: GetFDDetailsRequest, @Header("token") token: String ): Response diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt new file mode 100644 index 0000000..325e7e6 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/FDDataResponse.kt @@ -0,0 +1,12 @@ +package com.nivesh.production.bajajfd.model + +data class FDDataResponse( + val FDAmount: Double, + val Frequency: String, + val ParameterName: String, + val PaymentUrl: String, + val RateOfInterest: Double, + val Tenure: Int, + val UniqueId: String, + val Value: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt new file mode 100644 index 0000000..7cde245 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsRequest.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class GetFDDetailsRequest( + var FDProvider: String? = "", + var NiveshClientCode: String? = "", + var UniqueId: String? = "" +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt new file mode 100644 index 0000000..15f4af7 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetFDDetailsResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class GetFDDetailsResponse( + val Response: ResponseXXXXXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt new file mode 100644 index 0000000..4bacf38 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt @@ -0,0 +1,9 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXXXX( + val Errors: Any, + val FDDataResponse: FDDataResponse, + 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 65beecc..35b059f 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 @@ -32,8 +32,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun saveFDOtherDataResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) - suspend fun getFDDetailsResponse(getRatesRequest: GetRatesRequest, token: String) = - apiInterface.getRates(getRatesRequest, token) + suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) = + apiInterface.getFDDetails(getRatesRequest, token) suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) 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 a915b91..88b6ba0 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 @@ -18,6 +18,7 @@ import com.nivesh.production.bajajfd.ui.fragment.* import com.nivesh.production.bajajfd.ui.providerfactory.* import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.defaultShape +import com.nivesh.production.bajajfd.util.Common.Companion.getDate import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Constants.Companion.token @@ -300,12 +301,12 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { checkFDKYCRequest.Mobile = getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE checkFDKYCRequest.DOB = - getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_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() - stepOneBajajFDViewModel.checkFDKYC(checkFDKYCRequest, token) + stepOneBajajFDViewModel.checkFDKYC( checkFDKYCRequest, token) stepOneBajajFDViewModel.getFDKYCMutableData.observe(this) { response -> when (response) { is Resource.Success -> { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 923dcab..b6358b6 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -6,14 +6,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager import com.google.gson.Gson import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.adapter.CustomerListAdapter import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface -import com.nivesh.production.bajajfd.model.CreateFDApplicationResponse -import com.nivesh.production.bajajfd.model.GetCodeRequest -import com.nivesh.production.bajajfd.model.GetCodeResponse -import com.nivesh.production.bajajfd.model.GetRatesRequest +import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation @@ -26,7 +25,7 @@ class StepFourBajajFDFragment : Fragment() { private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private var _binding: FragmentBajajfdStepFourBinding? = null private val binding get() = _binding!! - var uniqueId : String? = "" + var uniqueId: String? = "" private lateinit var bajajFDInterface: BajajFDInterface @@ -58,36 +57,18 @@ class StepFourBajajFDFragment : Fragment() { binding.tvInterestPayout.text = "" binding.tvRateOfInterest.text = "" - - binding.swDirectorBajajFinance.setOnCheckedChangeListener { _, _ -> - - } - binding.swPromoterBajajFinance.setOnCheckedChangeListener { _, _ -> - - } - binding.swRelativeDirector.setOnCheckedChangeListener { _, _ -> - - } - binding.swShareholder.setOnCheckedChangeListener { _, _ -> - - } - binding.swPoliticallyExposed.setOnCheckedChangeListener { _, _ -> - - } - binding.swCitizen.setOnCheckedChangeListener { _, _ -> - - } - binding.checkBox.setOnCheckedChangeListener { _, _ -> } - binding.btnNext.setOnClickListener { if (binding.checkBox.isChecked) { bajajFDInterface.stepFourApi("stepFourResponse") - }else{ - showDialogValidation(activity as BajajFdMainActivity, resources.getString(R.string.validTermsConditions)) + } else { + showDialogValidation( + activity as BajajFdMainActivity, + resources.getString(R.string.validTermsConditions) + ) } } return root @@ -96,14 +77,15 @@ class StepFourBajajFDFragment : Fragment() { fun getFDData(createFDApplicationResponse: CreateFDApplicationResponse) { uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId // - + getFDDetailsApi(uniqueId!!) + customerListApi() } - private fun paymentModeApi() { + private fun customerListApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.genderCategory) + getCodeRequest.Category = getString(R.string.customerCategory) getCodeRequest.Language = getString(R.string.language) getCodeRequest.InputValue = "" stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) @@ -116,7 +98,9 @@ class StepFourBajajFDFragment : Fragment() { getCodeResponse.Response.StatusCode.let { code -> when (code) { 200 -> { - + if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { + setUpRecyclerView(getCodeResponse.Response.GetCodesList) + } } // 650 -> refreshToken() else -> {} @@ -139,24 +123,42 @@ class StepFourBajajFDFragment : Fragment() { } - private fun getFDDetailsApi() { + private fun setUpRecyclerView(getCustomerList: List) { + binding.rvTerms.layoutManager = + LinearLayoutManager(activity as BajajFdMainActivity) + val customerListAdapter = CustomerListAdapter(getCustomerList) + binding.rvTerms.adapter = customerListAdapter + + } + + private fun getFDDetailsApi(uniqueId: String) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { - val getCodeRequest = GetRatesRequest() - stepFourBajajFDViewModel.getFDDetails(getCodeRequest, Constants.token) + val getFDDetailsRequest = GetFDDetailsRequest() + getFDDetailsRequest.FDProvider = getString(R.string.bajaj) + getFDDetailsRequest.NiveshClientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + getFDDetailsRequest.UniqueId = uniqueId + stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetailsMutableData.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 -> + val getFDDetailsResponse: GetFDDetailsResponse = + Gson().fromJson( + response.data?.toString(), + GetFDDetailsResponse::class.java + ) + getFDDetailsResponse.Response.StatusCode.let { code -> when (code) { 200 -> { - - binding.tvInvestedAmount.text = "" - binding.tvTenure.text = "" - binding.tvInterestPayout.text = "" - binding.tvRateOfInterest.text = "" + binding.tvInvestedAmount.text = + getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString() + binding.tvTenure.text = + getFDDetailsResponse.Response.FDDataResponse.Tenure.toString() + binding.tvInterestPayout.text = + getFDDetailsResponse.Response.FDDataResponse.Frequency + binding.tvRateOfInterest.text = + getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString() } // 650 -> refreshToken() else -> {} @@ -179,7 +181,7 @@ class StepFourBajajFDFragment : Fragment() { } - override fun onDestroyView() { + 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 c5e7dd6..20e4403 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 @@ -23,6 +23,7 @@ import com.google.android.material.textfield.TextInputEditText import com.google.gson.Gson import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.adapter.BankListAdapter +import com.nivesh.production.bajajfd.adapter.PaymentModeAdapter import com.nivesh.production.bajajfd.adapter.RecommendedBankListAdapter import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface @@ -38,6 +39,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail import com.nivesh.production.bajajfd.util.Common.Companion.isValidName import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan import com.nivesh.production.bajajfd.util.Common.Companion.removeError +import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel @@ -60,6 +62,8 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var listOfRelationShip: List private lateinit var listOfMaritalStatus: List private lateinit var listOfOccupation: List + private lateinit var listOfPayMode: List + private lateinit var listOfStates: List private lateinit var listOfCities: List @@ -67,6 +71,7 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var bankListAdapter: BankListAdapter + private lateinit var paymentModeAdapter: PaymentModeAdapter private lateinit var stateObject: DataObject companion object { @@ -98,6 +103,7 @@ class StepTwoBajajFDFragment : Fragment() { listOfOccupation = ArrayList() listOfStates = ArrayList() listOfIFSC = ArrayList() + listOfPayMode = ArrayList() stateObject = DataObject() @@ -122,7 +128,7 @@ class StepTwoBajajFDFragment : Fragment() { } }) binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) - + binding.edtMobileNumber.setSelection(binding.edtMobileNumber.text.toString().length) // create an OnDateSetListener 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())) @@ -390,7 +396,11 @@ class StepTwoBajajFDFragment : Fragment() { datePicker(binding.edtNomineeDOB) } - binding.spNomineeRelation.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeRelationship) + binding.spNomineeRelation.setText( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( + 0 + )?.NomineeRelationship + ) binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> removeError(binding.tlNomineeRelation) } @@ -522,11 +532,11 @@ class StepTwoBajajFDFragment : Fragment() { } } - rbPaymentMode.text = getString(R.string.Upi) - binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId -> - rbPaymentMode = group.findViewById(checkedId) - Log.e("paymentMode", "-->" + rbPaymentMode.text) - } +// rbPaymentMode.text = getString(R.string.Upi) +// binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId -> +// rbPaymentMode = group.findViewById(checkedId) +// Log.e("paymentMode", "-->" + rbPaymentMode.text) +// } binding.tvEligibleBankOption.setOnClickListener { apiForEligibleBankList() @@ -610,8 +620,9 @@ 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 = stateObject.State_Code + // (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() @@ -763,7 +774,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getIFSCCodeListResponse.Response.message) + getIFSCCodeListResponse.Response.message + ) } } } @@ -771,7 +783,10 @@ class StepTwoBajajFDFragment : Fragment() { is Resource.Error -> { response.message?.let { message -> - Common.showDialogValidation(activity as BajajFdMainActivity, message) + Common.showDialogValidation( + activity as BajajFdMainActivity, + message + ) } } is Resource.Loading -> { @@ -804,7 +819,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getIFSCCodeResponse.Response.message) + getIFSCCodeResponse.Response.message + ) } } } @@ -871,6 +887,9 @@ class StepTwoBajajFDFragment : Fragment() { } } + + + private fun datePicker(edtDOB: TextInputEditText) { val year = cal.get(Calendar.YEAR) val month = cal.get(Calendar.MONTH) @@ -1024,13 +1043,15 @@ class StepTwoBajajFDFragment : Fragment() { occupationApi() annualIncomeApi() stateListApi() + paymentModeApi() } // 650 -> refreshToken() else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage) + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -1050,6 +1071,65 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun paymentModeApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.paymentModeCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepTwoBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) + stepTwoBajajFDViewModel.getPaymentModeMutableData.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 -> { + if (getCodeResponse.Response.GetCodesList.isNotEmpty()){ + listOfPayMode = getCodeResponse.Response.GetCodesList + setUpRecyclerViewPaymentMode(listOfPayMode) + } + } + // 650 -> refreshToken() + else -> { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getCodeResponse.Response.Errors[0].ErrorMessage + ) + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + } + } + + } + } + + private fun setUpRecyclerViewPaymentMode(listOfPayMode: List) { + + binding.rvPaymentMode.layoutManager = + LinearLayoutManager(activity as BajajFdMainActivity) + paymentModeAdapter = PaymentModeAdapter( + listOfPayMode, + listOfPayMode[0].Value + ) + binding.rvPaymentMode.adapter = paymentModeAdapter + } + + private fun genderApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -1085,7 +1165,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage) + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -1148,7 +1229,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage) + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -1204,7 +1286,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage) + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -1260,7 +1343,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage) + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -1316,7 +1400,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage) + getCodeResponse.Response.Errors[0].ErrorMessage + ) } } } @@ -1370,14 +1455,14 @@ class StepTwoBajajFDFragment : Fragment() { cityListApi(adapter.getItem(0)?.State_Id) stateObject = adapter.getItem(0) as DataObject - Log.e("if", " -->"+stateObject.State_Code) + Log.e("if", " -->" + stateObject.State_Code) } else { for (title in listOfStates) { if (title.State_Code == newTitleText) { binding.spState.setText(title.State_Name, false) cityListApi(title.State_Id) - stateObject = title - Log.e("else", " -->"+stateObject.State_Code) + stateObject = title + Log.e("else", " -->" + stateObject.State_Code) break } } @@ -1388,7 +1473,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - stateListResponse.response.message) + stateListResponse.response.message + ) } } } @@ -1464,7 +1550,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - cityListResponse.response.message) + cityListResponse.response.message + ) } } } @@ -1505,7 +1592,8 @@ class StepTwoBajajFDFragment : Fragment() { else -> { Common.showDialogValidation( activity as BajajFdMainActivity, - getFDBankListResponse.Response.Errors[0].ErrorMessage) + getFDBankListResponse.Response.Errors[0].ErrorMessage + ) } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt index 062b603..e68bff9 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt @@ -5,6 +5,7 @@ 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.GetFDDetailsRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse @@ -13,7 +14,6 @@ import kotlinx.coroutines.launch class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { getPaymentModeMutableData.postValue(Resource.Loading()) @@ -22,13 +22,12 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie } val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getFDDetails(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { + fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String) = viewModelScope.launch { getFDDetailsMutableData.postValue(Resource.Loading()) val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) getFDDetailsMutableData.postValue(handleRatesResponse(response)) } - private val getRatesMutableData: MutableLiveData> = MutableLiveData() fun saveFDOtherData(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) 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 b76baef..a284c59 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 @@ -97,5 +97,11 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View getifscCodeDetailsCheckMutableData.postValue(handleRatesResponse(response)) } + val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() + fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { + getPaymentModeMutableData.postValue(Resource.Loading()) + val response = mainRepository.payModeCheck(getCodeRequest, token) + getPaymentModeMutableData.postValue(handleRatesResponse(response)) + } } \ No newline at end of file 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 22a13de..110a22a 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_four.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_four.xml @@ -202,82 +202,27 @@ android:text="@string/termsAndCondition" android:textColor="@color/black" android:textSize="@dimen/text_size_14" - app:layout_constraintBottom_toTopOf="@+id/swDirectorBajajFinance" + app:layout_constraintBottom_toTopOf="@+id/llRVTerms" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/lblRateOfInterest" /> - + app:layout_constraintTop_toBottomOf="@+id/tvTermsCondition" + android:orientation="vertical"> - + - - - - - - - + + app:layout_constraintTop_toBottomOf="@+id/llRVTerms" /> + app:layout_constraintTop_toBottomOf="@+id/llRVTerms" /> 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 836d2bb..314daf8 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -1010,28 +1010,41 @@ - + android:layout_margin="@dimen/margin_5" + android:orientation="vertical"> - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_payment_list_preview.xml b/app/src/main/res/layout/item_payment_list_preview.xml new file mode 100644 index 0000000..0e095ca --- /dev/null +++ b/app/src/main/res/layout/item_payment_list_preview.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 5963c37..c5fdfa6 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -242,5 +242,7 @@ Aadhar Gallery Camera + PaymentMode + CustomerCategory \ 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 d6ab4a5..3c160f0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -244,6 +244,8 @@ Select Option Gallery Camera + PaymentMode + CustomerCategory Aadhaar Card From 67c9c77746b925eca09aa6c7a7eef44a5f80f673 Mon Sep 17 00:00:00 2001 From: pankaj Date: Tue, 3 Jan 2023 13:18:43 +0530 Subject: [PATCH 3/8] step --- .../production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt | 1 - 1 file changed, 1 deletion(-) 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 cc54d63..47b79a1 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 @@ -731,7 +731,6 @@ class StepTwoBajajFDFragment : Fragment() { ) }else{ for (title in listOfTitle) { - if (title.Value ==newTitleText) { binding.spTitle.setText(title.Value,false) From f3429340f1ef73e59647b1d9ae64ca0bd28b6099 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 3 Jan 2023 13:32:25 +0530 Subject: [PATCH 4/8] added missing changes --- .../ui/fragment/StepFourBajajFDFragment.kt | 7 +----- .../ui/fragment/StepThreeBajajFDFragment.kt | 6 ++--- .../res/layout/fragment_bajajfd_step_two.xml | 23 ------------------- 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index b6358b6..9007a20 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -25,7 +25,7 @@ class StepFourBajajFDFragment : Fragment() { private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private var _binding: FragmentBajajfdStepFourBinding? = null private val binding get() = _binding!! - var uniqueId: String? = "" + private var uniqueId: String? = "" private lateinit var bajajFDInterface: BajajFDInterface @@ -52,11 +52,6 @@ class StepFourBajajFDFragment : Fragment() { stepFourBajajFDViewModel = (activity as BajajFdMainActivity).stepFourBajajFDViewModel - binding.tvInvestedAmount.text = "" - binding.tvTenure.text = "" - binding.tvInterestPayout.text = "" - binding.tvRateOfInterest.text = "" - binding.checkBox.setOnCheckedChangeListener { _, _ -> } 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 45290d2..a40a798 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 @@ -97,10 +97,10 @@ class StepThreeBajajFDFragment : Fragment() { stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel binding.btnNext.setOnClickListener { - if (validate()) { + // if (validate()) { // - // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) - } + bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) + // } } binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 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 314daf8..d10b0e2 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -1023,29 +1023,6 @@ - - - - - - - - - - - - - - - - - - - - - - - Date: Tue, 3 Jan 2023 14:43:25 +0530 Subject: [PATCH 5/8] resolving issue --- .../bajajfd/ui/activity/BajajFdMainActivity.kt | 2 +- .../ui/fragment/StepFourBajajFDFragment.kt | 15 +++++++++------ .../bajajfd/ui/fragment/StepOneBajajFDFragment.kt | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) 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 88b6ba0..cbcd933 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 @@ -412,7 +412,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { 200 -> { binding.viewPager.currentItem = currentItem StepFourBajajFDFragment.getInstance(this) - .getFDData(createFDApplicationResponse) + .getFDData(createFDApplicationResponse ,this) } // 650 -> refreshToken() else -> { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 9007a20..86aad67 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -69,10 +69,13 @@ class StepFourBajajFDFragment : Fragment() { return root } - fun getFDData(createFDApplicationResponse: CreateFDApplicationResponse) { + fun getFDData( + createFDApplicationResponse: CreateFDApplicationResponse, + activity: BajajFdMainActivity + ) { uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId // - getFDDetailsApi(uniqueId!!) + getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId, activity) customerListApi() } @@ -126,12 +129,12 @@ class StepFourBajajFDFragment : Fragment() { } - private fun getFDDetailsApi(uniqueId: String) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + private fun getFDDetailsApi(uniqueId: String, activity: BajajFdMainActivity) { + if (Common.isNetworkAvailable(activity)) { val getFDDetailsRequest = GetFDDetailsRequest() - getFDDetailsRequest.FDProvider = getString(R.string.bajaj) + getFDDetailsRequest.FDProvider = activity.resources.getString(R.string.bajaj) getFDDetailsRequest.NiveshClientCode = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + activity.getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE getFDDetailsRequest.UniqueId = uniqueId stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> 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 fbe5465..44be1be 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 @@ -145,7 +145,7 @@ class StepOneBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdInvestmentDetails.NiveshClientCode = "8872" (activity as BajajFdMainActivity).fdInvestmentDetails.Provider = getString(R.string.bajaj) - (activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = "" + (activity as BajajFdMainActivity).fdInvestmentDetails.IPAddress = "192.168.1.23" (activity as BajajFdMainActivity).fdInvestmentDetails.Device = getString(R.string.app) (activity as BajajFdMainActivity).fdInvestmentDetails.Source = From c169200566ba69aac1cd976e28060d1250f7555b Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 3 Jan 2023 15:08:33 +0530 Subject: [PATCH 6/8] missing code --- .../ui/fragment/StepFourBajajFDFragment.kt | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 86aad67..4d8bc94 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -70,12 +70,11 @@ class StepFourBajajFDFragment : Fragment() { } fun getFDData( - createFDApplicationResponse: CreateFDApplicationResponse, - activity: BajajFdMainActivity + createFDApplicationResponse: CreateFDApplicationResponse ) { - uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId + this.uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId // - getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId, activity) + getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId) customerListApi() } @@ -86,8 +85,8 @@ class StepFourBajajFDFragment : Fragment() { getCodeRequest.Category = getString(R.string.customerCategory) getCodeRequest.Language = getString(R.string.language) getCodeRequest.InputValue = "" - stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) - stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> + this.stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) + this.stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { Log.e("response", "-->$response") @@ -129,12 +128,11 @@ class StepFourBajajFDFragment : Fragment() { } - private fun getFDDetailsApi(uniqueId: String, activity: BajajFdMainActivity) { - if (Common.isNetworkAvailable(activity)) { + private fun getFDDetailsApi(uniqueId: String) { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getFDDetailsRequest = GetFDDetailsRequest() - getFDDetailsRequest.FDProvider = activity.resources.getString(R.string.bajaj) - getFDDetailsRequest.NiveshClientCode = - activity.getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + getFDDetailsRequest.FDProvider = resources.getString(R.string.bajaj) + getFDDetailsRequest.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE getFDDetailsRequest.UniqueId = uniqueId stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> From c7d116916013125b0e67b46971f90214563b3a8a Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 3 Jan 2023 16:46:57 +0530 Subject: [PATCH 7/8] changes --- .../nivesh/production/bajajfd/BajajApplication.kt | 12 ++++++++++++ .../bajajfd/ui/activity/BajajFdMainActivity.kt | 4 ++-- .../bajajfd/ui/fragment/StepFourBajajFDFragment.kt | 6 +++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt b/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt index 4245071..22e3de5 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt @@ -3,4 +3,16 @@ package com.nivesh.production.bajajfd import android.app.Application class BajajApplication : Application() { + private var mInstance: BajajApplication? = null + // private val mRequestQueue: RequestQueue? = null + + override fun onCreate() { + super.onCreate() + mInstance = this; + } + + @Synchronized + fun getInstanceApp(): BajajApplication? { + return mInstance + } } \ 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 7490f83..47cca5f 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 @@ -47,8 +47,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { var getClientDetailsResponse: getClientDetailsResponse private var stepCount: Int = 0 - lateinit var sectionsPagerAdapter : SectionsPagerAdapter - lateinit var fragments: Array + private lateinit var sectionsPagerAdapter : SectionsPagerAdapter + private lateinit var fragments: Array override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 3a9865b..160da45 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -130,10 +130,10 @@ class StepFourBajajFDFragment : Fragment() { } private fun getFDDetailsApi(uniqueId: String) { - if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + if (Common.isNetworkAvailable(requireActivity())) { val getFDDetailsRequest = GetFDDetailsRequest() - getFDDetailsRequest.FDProvider = getString(R.string.bajaj) - getFDDetailsRequest.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + getFDDetailsRequest.FDProvider = requireActivity().getString(R.string.bajaj) + getFDDetailsRequest.NiveshClientCode = (requireContext().applicationContext as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE getFDDetailsRequest.UniqueId = uniqueId stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> From 587bd7862ae80b65ff03e8833350c762d2797dcf Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 3 Jan 2023 17:09:11 +0530 Subject: [PATCH 8/8] added missing code and resolved an error --- .../ui/activity/BajajFdMainActivity.kt | 25 +++++++++++-------- .../bajajfd/ui/activity/BaseActivity.kt | 13 ++++++++++ .../bajajfd/ui/fragment/BaseFragment.kt | 21 ++++++++++++++++ .../ui/fragment/StepFourBajajFDFragment.kt | 14 ++++++----- .../ui/fragment/StepOneBajajFDFragment.kt | 2 +- .../ui/fragment/StepThreeBajajFDFragment.kt | 8 ++++-- .../ui/fragment/StepTwoBajajFDFragment.kt | 2 +- .../nivesh/production/bajajfd/util/Common.kt | 3 ++- .../viewModel/StepThreeBajajFDViewModel.kt | 1 + 9 files changed, 68 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt 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 47cca5f..adc7ba7 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 @@ -3,7 +3,6 @@ package com.nivesh.production.bajajfd.ui.activity import android.graphics.drawable.Drawable import android.os.Bundle import android.util.Log -import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager @@ -26,7 +25,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.* -class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { +class BajajFdMainActivity : BaseActivity(), BajajFDInterface { lateinit var binding: ActivityBajajFdBinding private lateinit var viewModel: BajajFDViewModel @@ -385,13 +384,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { // step 2 response override fun stepTwoApi(data: CreateFDRequest) { Log.e("stepTwoApi", " response ---> $data") - if (stepCount == 4) { + // if (stepCount == 4) { // go to step 3 image Upload - binding.viewPager.currentItem = 2 - } else { + // binding.viewPager.currentItem = 2 + // } else { // call create fd api bypass step 3 - createFDApi(data, 2) - } + createFDApi(data, 2, "2") + // } } @@ -399,7 +398,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { override fun stepThreeApi(data: CreateFDRequest) { Log.e("stepThreeApi", " response ---> $data") // call create fd api - createFDApi(data, 3) + createFDApi(data, 3, "3") } // step 4 response @@ -408,7 +407,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { binding.viewPager.currentItem = 4 } - private fun createFDApi(data: CreateFDRequest, currentItem: Int) { + private fun createFDApi(data: CreateFDRequest, currentItem: Int, step: String) { if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { viewModel.createFDApi(data, token) @@ -425,10 +424,16 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { when (code) { 200 -> { binding.viewPager.currentItem = currentItem - StepFourBajajFDFragment.getInstance(this).displayReceivedData(createFDApplicationResponse) + if (step == "2"){ + val stepThreeBajajFDFragment: StepThreeBajajFDFragment = + sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepThreeBajajFDFragment + stepThreeBajajFDFragment.displayReceivedData(createFDApplicationResponse) + } + else{ val stepFourFDFragment: StepFourBajajFDFragment = sectionsPagerAdapter.getRegisteredFragment(stepCount - 1) as StepFourBajajFDFragment stepFourFDFragment.displayReceivedData(createFDApplicationResponse) + } } // 650 -> refreshToken() else -> { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt new file mode 100644 index 0000000..0d3d811 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt @@ -0,0 +1,13 @@ +package com.nivesh.production.bajajfd.ui.activity + +import android.app.Activity +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity + +open class BaseActivity : AppCompatActivity() { + private lateinit var mActivity: Activity + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + mActivity = this + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt new file mode 100644 index 0000000..4295636 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt @@ -0,0 +1,21 @@ +package com.nivesh.production.bajajfd.ui.fragment + +import android.content.Context +import android.os.Bundle +import androidx.fragment.app.Fragment +import com.nivesh.production.bajajfd.ui.activity.BaseActivity + +open class BaseFragment : Fragment() { + protected var mActivity: BaseActivity? = null + override fun onAttach(context: Context) { + super.onAttach(context) + if (context is BaseActivity) { + mActivity = context + } else try { + throw ClassCastException("You need to extend BaseActivity to calling activity.") + } catch (e: Exception) { + e.printStackTrace() + } + } + +} diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 160da45..feff452 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -1,7 +1,5 @@ package com.nivesh.production.bajajfd.ui.fragment -import android.app.Activity -import android.content.Context import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -22,7 +20,7 @@ import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel -class StepFourBajajFDFragment : Fragment() { +class StepFourBajajFDFragment : BaseFragment() { private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private var _binding: FragmentBajajfdStepFourBinding? = null @@ -67,6 +65,10 @@ class StepFourBajajFDFragment : Fragment() { ) } } + + binding.btnBack.setOnClickListener{ + (activity as BajajFdMainActivity).binding.viewPager.currentItem = 2 + } return root } @@ -130,10 +132,10 @@ class StepFourBajajFDFragment : Fragment() { } private fun getFDDetailsApi(uniqueId: String) { - if (Common.isNetworkAvailable(requireActivity())) { + if (Common.isNetworkAvailable(mActivity!!)) { val getFDDetailsRequest = GetFDDetailsRequest() - getFDDetailsRequest.FDProvider = requireActivity().getString(R.string.bajaj) - getFDDetailsRequest.NiveshClientCode = (requireContext().applicationContext as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + getFDDetailsRequest.FDProvider = mActivity!!.getString(R.string.bajaj) + getFDDetailsRequest.NiveshClientCode = (mActivity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE getFDDetailsRequest.UniqueId = uniqueId stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> 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 44be1be..b6e6484 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 @@ -31,7 +31,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel -class StepOneBajajFDFragment : Fragment() { +class StepOneBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepOneBinding? = null private val binding get() = _binding!! 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 a40a798..ce57e5e 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 @@ -36,7 +36,7 @@ import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel import java.io.File -class StepThreeBajajFDFragment : Fragment() { +class StepThreeBajajFDFragment : BaseFragment() { private var latestTmpUri: Uri? = null private var _binding: FragmentBajajfdStepThreeBinding? = null @@ -45,7 +45,7 @@ class StepThreeBajajFDFragment : Fragment() { private lateinit var bajajFDInterface: BajajFDInterface private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel - + private var uniqueId: String? = "" private lateinit var dialog: Dialog companion object { @@ -313,4 +313,8 @@ class StepThreeBajajFDFragment : Fragment() { super.onDestroyView() _binding = null } + + fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { + uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId + } } \ No newline at end of file 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 20e4403..8218885 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 @@ -46,7 +46,7 @@ import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel import java.util.* -class StepTwoBajajFDFragment : Fragment() { +class StepTwoBajajFDFragment : BaseFragment() { private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! 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 fc36a35..791ce18 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 @@ -15,6 +15,7 @@ import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R +import com.nivesh.production.bajajfd.ui.activity.BaseActivity import retrofit2.HttpException import java.io.IOException import java.text.SimpleDateFormat @@ -33,7 +34,7 @@ class Common { val connectivityManager = getApplication().getSystemService(.... **/ //internet check - fun isNetworkAvailable(activity: Activity): Boolean { + fun isNetworkAvailable(activity: BaseActivity): Boolean { val connectivityManager = activity.getSystemService( Context.CONNECTIVITY_SERVICE ) as ConnectivityManager 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 84330b9..1162885 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 @@ -27,4 +27,5 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi getTitleMutableData.postValue(handleRatesResponse(response)) } + } \ No newline at end of file