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 efe23ae..0142c2f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -1,6 +1,6 @@ package com.nivesh.production.bajajfd.interfaces -import GetRatesResponse +import com.google.gson.JsonObject import com.nivesh.production.bajajfd.model.GetRatesRequest import okhttp3.RequestBody import retrofit2.Response @@ -10,36 +10,36 @@ import retrofit2.http.POST interface ApiInterface { @POST("GetRates") - suspend fun getRates(@Body getRatesRequest: GetRatesRequest): Response + suspend fun getRates(@Body getRatesRequest: GetRatesRequest): Response @POST("CheckFDCKYC") - suspend fun checkFDKYC(@Body requestBody: RequestBody) : Response + suspend fun checkFDKYC(@Body requestBody: RequestBody): Response @POST("CreateFDApplication") - suspend fun createFDApp(@Body requestBody: RequestBody): Response + suspend fun createFDApp(@Body requestBody: RequestBody): Response @POST("DocumentsUpload") - suspend fun documentsUpload(@Body requestBody: RequestBody): Response + suspend fun documentsUpload(@Body requestBody: RequestBody): Response @POST("SaveFDOtherData") - suspend fun saveFDOtherData(@Body requestBody: RequestBody): Response + suspend fun saveFDOtherData(@Body requestBody: RequestBody): Response @POST("GetFDDetails") - suspend fun getFDDetails(@Body requestBody: RequestBody): Response + suspend fun getFDDetails(@Body requestBody: RequestBody): Response @POST("UpdateFDPaymentStatus") - suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody): Response + suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody): Response @POST("FinaliseFD") - suspend fun finaliseFD(@Body requestBody: RequestBody): Response + suspend fun finaliseFD(@Body requestBody: RequestBody): Response @POST("FinaliseKYC") - suspend fun finaliseKYC(@Body requestBody: RequestBody): Response + suspend fun finaliseKYC(@Body requestBody: RequestBody): Response @POST("PaymentRequery") - suspend fun paymentReQuery(@Body requestBody: RequestBody): Response + suspend fun paymentReQuery(@Body requestBody: RequestBody): Response @POST("GetCodes") - suspend fun getCodes(@Body requestBody: RequestBody): Response + suspend fun getCodes(@Body requestBody: RequestBody): Response } \ 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 01ce01d..7235eb0 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 @@ -4,6 +4,37 @@ import com.nivesh.production.bajajfd.interfaces.ApiInterface import com.nivesh.production.bajajfd.model.GetRatesRequest class MainRepository constructor(private val apiInterface: ApiInterface) { - suspend fun getAllRatesResponse(getRatesRequest: GetRatesRequest) = + suspend fun getRatesResponse(getRatesRequest: GetRatesRequest) = apiInterface.getRates(getRatesRequest) + + suspend fun checkFDKYCResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun createFDAppResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun documentsUploadResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun saveFDOtherDataResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun getFDDetailsResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun finaliseFDResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun finaliseKYCResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun paymentReQueryResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + + suspend fun getCodesResponse(getRatesRequest: GetRatesRequest) = + apiInterface.getRates(getRatesRequest) + } \ 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 89b21d9..b6dd103 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 @@ -16,12 +16,12 @@ import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.ui.fragment.* import com.nivesh.production.bajajfd.ui.providerfactory.GetRatesModelProviderFactory import com.nivesh.production.bajajfd.util.Colors -import com.nivesh.production.bajajfd.viewModel.StepOneViewModel +import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { private lateinit var binding: ActivityBajajFdBinding - lateinit var viewModel: StepOneViewModel + lateinit var viewModel: StepOneBajajFDViewModel override fun onCreate(savedInstanceState: Bundle?) { @@ -36,7 +36,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { //start Repository val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient)) - viewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneViewModel::class.java] + viewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java] binding.imgBack.setOnClickListener { finish() diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt index e3af653..79e2036 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt @@ -8,11 +8,11 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding -import com.nivesh.production.bajajfd.viewModel.StepFiveViewModel +import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel class StepFiveBajajFDFragment : Fragment() { - private lateinit var stepFourViewModel: StepFiveViewModel + private lateinit var stepFourViewModel: StepFiveBajajFDViewModel private var _binding: FragmentBajajfdStepFiveBinding? = null private val binding get() = _binding!! @@ -30,7 +30,7 @@ class StepFiveBajajFDFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - stepFourViewModel = ViewModelProvider(this)[StepFiveViewModel::class.java].apply { + stepFourViewModel = ViewModelProvider(this)[StepFiveBajajFDViewModel::class.java].apply { } } 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 17f6323..7982184 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 @@ -8,11 +8,11 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding -import com.nivesh.production.bajajfd.viewModel.StepFourViewModel +import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel class StepFourBajajFDFragment : Fragment() { - private lateinit var stepFourViewModel: StepFourViewModel + private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private var _binding: FragmentBajajfdStepFourBinding? = null private val binding get() = _binding!! @@ -31,7 +31,7 @@ class StepFourBajajFDFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - stepFourViewModel = ViewModelProvider(this)[StepFourViewModel::class.java].apply { + stepFourBajajFDViewModel = ViewModelProvider(this)[StepFourBajajFDViewModel::class.java].apply { } } 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 d3cddf0..3fa867a 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 @@ -7,19 +7,20 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.google.gson.Gson import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.util.Resource -import com.nivesh.production.bajajfd.viewModel.StepOneViewModel +import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel class StepOneBajajFDFragment : Fragment() { - private lateinit var stepOneViewModel: StepOneViewModel private var _binding: FragmentBajajfdStepOneBinding? = null private val binding get() = _binding!! private lateinit var bajajFDInterface: BajajFDInterface + private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel companion object { fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment { @@ -34,24 +35,45 @@ class StepOneBajajFDFragment : Fragment() { } override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { _binding = FragmentBajajfdStepOneBinding.inflate(inflater, container, false) val root = binding.root + stepOneBajajFDViewModel = (activity as BajajFdMainActivity).viewModel + + // binding.tlDepositAmount + // binding.spInterestPayout + // binding.swSeniorCitizen + // binding.radioGroup + // binding.rbDeductTax + // binding.tvROI + // binding.tvFrequency + // binding.tvMaturityAmount + getRatesApi() + + binding.btnNext.setOnClickListener { + if (validation()) { + bajajFDInterface.stepOneApi("stepOneResponse") + } + } + return root + } + + private fun getRatesApi() { val getRatesRequest = GetRatesRequest() getRatesRequest.fdProvider = "" getRatesRequest.frequency = "" getRatesRequest.type = "" - stepOneViewModel.getAllRates(getRatesRequest) - stepOneViewModel = (activity as BajajFdMainActivity).viewModel - stepOneViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> + stepOneBajajFDViewModel.getRates(getRatesRequest) + stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - response.data?.Response?.StatusCode?.let { code -> + val getRatesResponse: GetRatesResponse = + Gson().fromJson(response.toString(), GetRatesResponse::class.java) + getRatesResponse.Response.StatusCode.let { code -> when (code) { - 200 -> getRatesData(response.data) + 200 -> getRatesData(getRatesResponse) 650 -> refreshToken() else -> {} } @@ -68,23 +90,19 @@ class StepOneBajajFDFragment : Fragment() { } } } + } -// binding.txtInterestTenure.setOnClickListener { -// -// } - - binding.btnNext.setOnClickListener { - bajajFDInterface.stepOneApi("stepOneResponse") - } - - return root + private fun validation(): Boolean { + TODO("Not yet implemented") } + private fun refreshToken() { } + private fun getRatesData(getRatesResponse: GetRatesResponse) { 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 e1ff364..b920138 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 @@ -8,11 +8,11 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding -import com.nivesh.production.bajajfd.viewModel.StepThreeViewModel +import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel class StepThreeBajajFDFragment : Fragment() { - private lateinit var stepThreeViewModel: StepThreeViewModel + private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private var _binding: FragmentBajajfdStepThreeBinding? = null private val binding get() = _binding!! @@ -30,7 +30,7 @@ class StepThreeBajajFDFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - stepThreeViewModel = ViewModelProvider(this)[StepThreeViewModel::class.java].apply { + stepThreeBajajFDViewModel = ViewModelProvider(this)[StepThreeBajajFDViewModel::class.java].apply { } } 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 de4f984..ef4dc8e 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 @@ -8,14 +8,15 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepTwoBinding -import com.nivesh.production.bajajfd.viewModel.StepTwoViewModel +import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel class StepTwoBajajFDFragment : Fragment() { - private lateinit var stepTwoViewModel: StepTwoViewModel + private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! private lateinit var bajajFDInterface: BajajFDInterface + private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel companion object { fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment { @@ -32,7 +33,7 @@ class StepTwoBajajFDFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - stepTwoViewModel = ViewModelProvider(this)[StepTwoViewModel::class.java].apply { + stepTwoBajajFDViewModel = ViewModelProvider(this)[StepTwoBajajFDViewModel::class.java].apply { } } @@ -45,19 +46,17 @@ class StepTwoBajajFDFragment : Fragment() { _binding = FragmentBajajfdStepTwoBinding.inflate(inflater,container,false) val root = binding.root - stepTwoViewModel.text.observe(viewLifecycleOwner) { - } binding.tvPersonalDetails.setOnClickListener { - stepTwoViewModel.setUpVisibility(binding.llPersonalDetail) + } binding.tvNomineeDetails.setOnClickListener { - stepTwoViewModel.setUpVisibility(binding.llNomineeDetail) + } binding.tvBankDetails.setOnClickListener { - stepTwoViewModel.setUpVisibility(binding.llBankDetails) + } return root diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/GetRatesModelProviderFactory.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/GetRatesModelProviderFactory.kt index a26b5a9..9daa680 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/GetRatesModelProviderFactory.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/GetRatesModelProviderFactory.kt @@ -3,13 +3,12 @@ package com.nivesh.production.bajajfd.ui.providerfactory import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.nivesh.production.bajajfd.repositories.MainRepository -import com.nivesh.production.bajajfd.viewModel.StepOneViewModel +import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel + +class GetRatesModelProviderFactory (private val mainRepository: MainRepository) : ViewModelProvider.Factory { -class GetRatesModelProviderFactory (val mainRepository: MainRepository) : ViewModelProvider.Factory { - // @Override fun create(modelClass: Class): T { -// return StepOneViewModel(mainRepository) as T -// } override fun create(modelClass: Class): T { - return StepOneViewModel(mainRepository) as T + return StepOneBajajFDViewModel(mainRepository) as T } + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt similarity index 89% rename from app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveViewModel.kt rename to app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt index e7e5b49..1ff30eb 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.Transformations import androidx.lifecycle.ViewModel -class StepFiveViewModel : ViewModel() { +class StepFiveBajajFDViewModel : ViewModel() { private val _index = MutableLiveData() val text: LiveData = Transformations.map(_index) { 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 new file mode 100644 index 0000000..c6dcc5f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt @@ -0,0 +1,59 @@ +package com.nivesh.production.bajajfd.viewModel + +import androidx.lifecycle.* +import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetRatesRequest +import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Resource +import kotlinx.coroutines.launch + +class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { + + private val getRatesMutableData: MutableLiveData> = MutableLiveData() + + fun saveFDOtherData(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.saveFDOtherDataResponse(getRatesRequest) + 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()) + + } + + fun getFDDetails(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.getFDDetailsResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + fun finaliseFD(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.finaliseFDResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + fun finaliseKYC(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.finaliseKYCResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + fun paymentReQuery(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.paymentReQueryResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourViewModel.kt deleted file mode 100644 index 39691a4..0000000 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourViewModel.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.nivesh.production.bajajfd.viewModel - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.Transformations -import androidx.lifecycle.ViewModel - -class StepFourViewModel : ViewModel() { - - private val _index = MutableLiveData() - val text: LiveData = Transformations.map(_index) { - "Step : $it" - } - - fun setIndex(index: Int) { - _index.value = index - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt similarity index 67% rename from app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneViewModel.kt rename to app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt index 32e9c9a..7ba8e32 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt @@ -1,25 +1,25 @@ package com.nivesh.production.bajajfd.viewModel -import GetRatesResponse import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.google.gson.JsonObject import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch -class StepOneViewModel(private val mainRepository: MainRepository) : ViewModel() { +class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { // TODO: Implement the ViewModel - val getRatesMutableData: MutableLiveData> = MutableLiveData() + val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun getAllRates(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + fun getRates(getRatesRequest: GetRatesRequest) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getAllRatesResponse(getRatesRequest) + val response = mainRepository.getRatesResponse(getRatesRequest) getRatesMutableData.postValue(handleRatesResponse(response)) } - private fun handleRatesResponse(response: retrofit2.Response): Resource { + private fun handleRatesResponse(response: retrofit2.Response): Resource { if (response.isSuccessful) { response.body()?.let { resultResponse -> return Resource.Success(resultResponse) 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 new file mode 100644 index 0000000..548614f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt @@ -0,0 +1,33 @@ +package com.nivesh.production.bajajfd.viewModel + +import androidx.lifecycle.* +import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetRatesRequest +import com.nivesh.production.bajajfd.repositories.MainRepository +import com.nivesh.production.bajajfd.util.Resource +import kotlinx.coroutines.launch + +class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { + + private val getRatesMutableData: MutableLiveData> = MutableLiveData() + + fun documentsUpload(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.documentsUploadResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + + private fun handleRatesResponse(response: retrofit2.Response): Resource { + if (response.isSuccessful) { + response.body()?.let { resultResponse -> + return Resource.Success(resultResponse) + } + } + return Resource.Error(response.message()) + + } + + + + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeViewModel.kt deleted file mode 100644 index c1e27c2..0000000 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeViewModel.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.nivesh.production.bajajfd.viewModel - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.Transformations -import androidx.lifecycle.ViewModel - -class StepThreeViewModel : ViewModel() { - - private val _index = MutableLiveData() - val text: LiveData = Transformations.map(_index) { - "Step : $it" - } - - fun setIndex(index: Int) { - _index.value = index - } -} \ 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 new file mode 100644 index 0000000..7d73807 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -0,0 +1,39 @@ +package com.nivesh.production.bajajfd.viewModel + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetRatesRequest +import com.nivesh.production.bajajfd.repositories.MainRepository +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() + + fun checkFDKYC(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.checkFDKYCResponse(getRatesRequest) + 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()) + + } + + fun createFDApp(getRatesRequest: GetRatesRequest) = viewModelScope.launch { + getRatesMutableData.postValue(Resource.Loading()) + val response = mainRepository.createFDAppResponse(getRatesRequest) + getRatesMutableData.postValue(handleRatesResponse(response)) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoViewModel.kt deleted file mode 100644 index 198610e..0000000 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoViewModel.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.nivesh.production.bajajfd.viewModel - -import android.view.View -import android.widget.LinearLayout -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.Transformations -import androidx.lifecycle.ViewModel - -class StepTwoViewModel : ViewModel() { - - private val _index = MutableLiveData() - val text: LiveData = Transformations.map(_index) { - "Step : $it" - } - - fun setIndex(index: Int) { - _index.value = index - } - - fun setUpVisibility(ll: LinearLayout) { - if(ll.visibility== View.VISIBLE) ll.visibility = View.GONE - else ll.visibility = View.VISIBLE - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_one.xml b/app/src/main/res/layout/fragment_bajajfd_step_one.xml index d94df7e..d3fe8d1 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_one.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_one.xml @@ -12,12 +12,12 @@ android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/_5sdp" + android:layout_marginRight="@dimen/_5sdp" android:fillViewport="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - android:layout_marginLeft="@dimen/_5sdp" - android:layout_marginRight="@dimen/_5sdp" app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintVertical_bias="0.02" /> + app:layout_constraintTop_toBottomOf="@+id/tvInvestmentTenure" /> - - - - - + android:paddingStart="@dimen/_2sdp" + android:paddingEnd="@dimen/_2sdp" + app:layout_constraintTop_toBottomOf="@+id/tvMaturityInstruction"> + + + + + + + + + - + app:layout_constraintTop_toBottomOf="@+id/tvUploadFormLabel" /> @@ -332,16 +311,16 @@ Company for the same" style="@style/CustomCardViewBottomStyle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@drawable/bajaj_logo" android:foreground="?android:attr/selectableItemBackground" android:padding="@dimen/margin_10" app:cardBackgroundColor="@color/bg_color_info" + app:cardPreventCornerOverlap="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/cardViewOne" - android:background="@drawable/bajaj_logo" - app:layout_constraintVertical_bias="0.0" - app:cardPreventCornerOverlap="true"> + app:layout_constraintVertical_bias="0.0">