diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1a75794..7a1d06e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools">
+
@POST("GetCodes")
- @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0")
+ @Headers({"token: 636F8F63-06C4-4D95-8562-392B34025FB0"; "Content-Type: multipart/form-data"; "Accept: application/json" }.toString())
suspend fun getCodes(@Body requestBody: GetCodeRequest): Response
}
\ 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 1fb6e93..ef7dbba 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
@@ -15,8 +15,10 @@ import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetCodeResponse
+import com.nivesh.production.bajajfd.model.GetCodes
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.fragment.*
+import com.nivesh.production.bajajfd.ui.providerfactory.FDModelProviderFactory
import com.nivesh.production.bajajfd.ui.providerfactory.GetRatesModelProviderFactory
import com.nivesh.production.bajajfd.util.Colors
import com.nivesh.production.bajajfd.util.Resource
@@ -28,6 +30,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
lateinit var viewModel: BajajFDViewModel
+ lateinit var listOfFrequency : List
override fun onCreate(savedInstanceState: Bundle?) {
@@ -41,22 +44,20 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
setContentView(binding.root)
//start Repository
- val viewModelProviderFactory =
- GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient))
- stepOneBajajFDViewModel =
- ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java]
+ val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient))
+ stepOneBajajFDViewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java]
- viewModel = ViewModelProvider(this, viewModelProviderFactory)[viewModel::class.java]
+ val fdViewModelProviderFactory = FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
+ viewModel = ViewModelProvider(this, fdViewModelProviderFactory)[BajajFDViewModel::class.java]
+ listOfFrequency = ArrayList()
getCodeApi()
-
-
-
-
binding.imgBack.setOnClickListener {
finish()
}
+ }
+ private fun setViewPager() {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape())
@@ -130,6 +131,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
})
+
}
private fun getCodeApi() {
@@ -146,7 +148,10 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
Gson().fromJson(response.toString(), GetCodeResponse::class.java)
getCodeResponse.Response.StatusCode.let { code ->
when (code) {
- 200 -> getCodeData(getCodeResponse)
+ 200 -> {
+ listOfFrequency = getCodeResponse.Response.GetCodesList
+ setViewPager()
+ }
// 650 -> refreshToken()
else -> {}
}
@@ -165,10 +170,6 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
- private fun getCodeData(codeResponse: GetCodeResponse) {
-
- }
-
// set Default Step
private fun defaultShape(): GradientDrawable {
val shape = GradientDrawable()
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
index 3f9f587..cc03a14 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
@@ -1,6 +1,7 @@
package com.nivesh.production.bajajfd.ui.fragment
import GetRatesResponse
+import ROIDatalist
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
@@ -15,6 +16,9 @@ import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
+import com.nivesh.production.bajajfd.model.GetCodeRequest
+import com.nivesh.production.bajajfd.model.GetCodeResponse
+import com.nivesh.production.bajajfd.model.GetCodes
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
@@ -28,6 +32,7 @@ class StepOneBajajFDFragment : Fragment() {
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
private lateinit var rgMaturity: RadioButton
+ public lateinit var listOfTenure : List
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment {
@@ -49,6 +54,8 @@ class StepOneBajajFDFragment : Fragment() {
stepOneBajajFDViewModel = (activity as BajajFdMainActivity).stepOneBajajFDViewModel
+ listOfTenure = ArrayList()
+
// Amount
binding.edtAmount.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
@@ -63,23 +70,21 @@ class StepOneBajajFDFragment : Fragment() {
})
// Frequency
- val adapter = ArrayAdapter(
- activity as BajajFdMainActivity,
- R.layout.spinner_dropdown,
- resources.getStringArray(
- R.array.interestPayoutList
- )
- )
- binding.spInterestPayout.setAdapter(adapter)
- binding.spInterestPayout.setOnItemClickListener { parent, view, position, id ->
- binding.spInterestPayout.error = null
- binding.tvFrequency.text = binding.spInterestPayout.text
+ if ((activity as BajajFdMainActivity).listOfFrequency.isNotEmpty()) {
+ val adapter = ArrayAdapter(activity as BajajFdMainActivity, R.layout.spinner_dropdown, (activity as BajajFdMainActivity).listOfFrequency)
+ binding.spInterestPayout.setAdapter(adapter)
+ binding.spInterestPayout.setOnItemClickListener { parent, view, position, id ->
+ binding.tlInterestPayout.error = null
+ binding.tvFrequency.text = (activity as BajajFdMainActivity).listOfFrequency[position].Label
+ getRatesApi()
+ }
}
// Tenure
- binding.spTenure.setAdapter(adapter)
- binding.spTenure.setOnItemClickListener { parent, view, position, id ->
- // getRatesApi()
+ if (listOfTenure.isNotEmpty()) {
+ binding.spTenure.setOnItemClickListener { parent, view, position, id ->
+
+ }
}
@@ -127,12 +132,52 @@ class StepOneBajajFDFragment : Fragment() {
}
}
+ private fun getCodeApi() {
+ val getCodeRequest = GetCodeRequest()
+ getCodeRequest.ProductName = "BajajFD"
+ getCodeRequest.Category = "InterestPayoutFreq"
+ getCodeRequest.Language = "EN"
+ getCodeRequest.InputValue = ""
+ stepOneBajajFDViewModel.getCode(getCodeRequest)
+ stepOneBajajFDViewModel.getRatesMutableData.observe(this) { response ->
+ when (response) {
+ is Resource.Success -> {
+ val getCodeResponse: GetCodeResponse =
+ Gson().fromJson(response.toString(), GetCodeResponse::class.java)
+ getCodeResponse.Response.StatusCode.let { code ->
+ when (code) {
+ 200 -> {
+
+ }
+ // 650 -> refreshToken()
+ else -> {}
+ }
+ }
+ }
+
+ is Resource.Error -> {
+ response.message?.let { message ->
+ Log.e(" ", "An error occurred:$message")
+ }
+ }
+ is Resource.Loading -> {
+
+ }
+ }
+ }
+ }
+
+
private fun getRatesApi() {
val getRatesRequest = GetRatesRequest()
getRatesRequest.fdProvider = "Bajaj"
- getRatesRequest.frequency = ""
- getRatesRequest.type = ""
+ getRatesRequest.frequency = binding.spInterestPayout.text.toString()
+ if (binding.swSeniorCitizen.isChecked){
+ getRatesRequest.type = "Non Senior Citizen"
+ }else{
+ getRatesRequest.type = "Senior Citizen"
+ }
stepOneBajajFDViewModel.getRates(getRatesRequest)
stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
@@ -142,7 +187,7 @@ class StepOneBajajFDFragment : Fragment() {
getRatesResponse.Response.StatusCode.let { code ->
when (code) {
200 -> getRatesData(getRatesResponse)
- 650 -> refreshToken()
+ // 650 -> refreshToken()
else -> {}
}
}
@@ -168,7 +213,9 @@ class StepOneBajajFDFragment : Fragment() {
private fun getRatesData(getRatesResponse: GetRatesResponse) {
-
+ listOfTenure = getRatesResponse.Response.ROIDatalist
+ val adapter = ArrayAdapter(activity as BajajFdMainActivity, R.layout.spinner_dropdown, listOfTenure)
+ binding.spTenure.setAdapter(adapter)
}
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt
new file mode 100644
index 0000000..6734313
--- /dev/null
+++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt
@@ -0,0 +1,15 @@
+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.BajajFDViewModel
+import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel
+
+class FDModelProviderFactory (private val mainRepository: MainRepository) : ViewModelProvider.Factory {
+
+ override fun create(modelClass: Class): T {
+ return BajajFDViewModel(mainRepository) as T
+ }
+
+}
\ No newline at end of file
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 9daa680..72cf610 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,6 +3,7 @@ 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.BajajFDViewModel
import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel
class GetRatesModelProviderFactory (private val mainRepository: MainRepository) : ViewModelProvider.Factory {
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 13db406..5b370e4 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
@@ -5,7 +5,6 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest
-import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
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 7ba8e32..818d622 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
@@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
+import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Resource
@@ -19,6 +20,12 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View
getRatesMutableData.postValue(handleRatesResponse(response))
}
+ fun getCode(getCodeRequest: GetCodeRequest) = viewModelScope.launch {
+ getRatesMutableData.postValue(Resource.Loading())
+ val response = mainRepository.getCodesResponse(getCodeRequest)
+ getRatesMutableData.postValue(handleRatesResponse(response))
+ }
+
private fun handleRatesResponse(response: retrofit2.Response): Resource {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->