diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml
index f174d17..d5e1f0e 100644
--- a/.idea/dbnavigator.xml
+++ b/.idea/dbnavigator.xml
@@ -11,6 +11,9 @@
+
+
+
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt
new file mode 100644
index 0000000..a4d2eef
--- /dev/null
+++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt
@@ -0,0 +1,35 @@
+package com.nivesh.production.bajajfd.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ArrayAdapter
+import android.widget.TextView
+import com.nivesh.production.bajajfd.R
+import com.nivesh.production.bajajfd.model.GetCodes
+
+
+internal class SpinnerAdapter(
+ context: Context,
+ private var listItems: List
+) :
+ ArrayAdapter(context, R.layout.spinner_dropdown, listItems) {
+
+ override fun getItemId(position: Int): Long {
+ return position.toLong()
+ }
+
+ override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View {
+ var v = convertView
+ if (v == null) {
+ val inflater = LayoutInflater.from(context)
+ v = inflater.inflate(R.layout.spinner_dropdown, parent, false)
+ }
+ val lbl = v!!.findViewById(R.id.tvText) as TextView
+ val getCode : GetCodes = listItems[position]
+ lbl.text = getCode.Value
+ return v
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
index d05b6e6..55a39c7 100644
--- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
+++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
@@ -3,4 +3,8 @@ package com.nivesh.production.bajajfd.model
data class GetCodes(
val Label: String,
val Value: String
-)
\ No newline at end of file
+) {
+ override fun toString(): String {
+ return Value
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt
index aaec798..b41df97 100644
--- a/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt
+++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt
@@ -4,4 +4,8 @@ data class ROIDatalist(
val ROI: Double,
val Tenure: String,
val Type: String
-)
\ No newline at end of file
+) {
+ override fun toString(): String {
+ return Tenure.plus(" Months ").plus(" | ").plus(ROI).plus(" % ")
+ }
+}
\ 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 1562556..a8d2bab 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
@@ -1,8 +1,6 @@
package com.nivesh.production.bajajfd.ui.activity
-import android.graphics.Color
import android.graphics.drawable.Drawable
-import android.graphics.drawable.GradientDrawable
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
@@ -20,7 +18,8 @@ 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.Common.Companion.defaultShape
+import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel
import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel
@@ -32,7 +31,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
lateinit var viewModel: BajajFDViewModel
- lateinit var listOfFrequency : List
+ lateinit var listOfFrequency: List
override fun onCreate(savedInstanceState: Bundle?) {
@@ -46,11 +45,15 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
setContentView(binding.root)
//start Repository
- // val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient))
- // stepOneBajajFDViewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java]
-
- val fdViewModelProviderFactory = FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
- viewModel = ViewModelProvider(this, fdViewModelProviderFactory)[BajajFDViewModel::class.java]
+ val viewModelProviderFactory =
+ GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient))
+ stepOneBajajFDViewModel =
+ ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java]
+
+ val fdViewModelProviderFactory =
+ FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
+ viewModel =
+ ViewModelProvider(this, fdViewModelProviderFactory)[BajajFDViewModel::class.java]
listOfFrequency = ArrayList()
getCodeApi()
@@ -59,6 +62,45 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
}
+ private fun getCodeApi() {
+ val getCodeRequest = GetCodeRequest()
+ getCodeRequest.ProductName = "BajajFD"
+ getCodeRequest.Category = "InterestPayoutFreq"
+ getCodeRequest.Language = "EN"
+ getCodeRequest.InputValue = ""
+ val codeRequest: String = Gson().toJson(getCodeRequest);
+ val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull())
+ viewModel.getCode(requestBody)
+ viewModel.getRatesMutableData.observe(this) { 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 -> {
+ listOfFrequency = getCodeResponse.Response.GetCodesList
+ setViewPager()
+ }
+ // 650 -> refreshToken()
+ else -> {}
+ }
+ }
+ }
+
+ is Resource.Error -> {
+ response.message?.let { message ->
+ Log.e(" ", "An error occurred:$message")
+ }
+ }
+ is Resource.Loading -> {
+
+ }
+ }
+ }
+ }
+
private fun setViewPager() {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape())
@@ -136,63 +178,6 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
}
- private fun getCodeApi() {
- val getCodeRequest = GetCodeRequest()
- getCodeRequest.ProductName = "BajajFD"
- getCodeRequest.Category = "InterestPayoutFreq"
- getCodeRequest.Language = "EN"
- getCodeRequest.InputValue = ""
- val codeRequest : String = Gson().toJson(getCodeRequest);
- val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull())
- viewModel.getCode(requestBody)
- viewModel.getRatesMutableData.observe(this) { response ->
- when (response) {
- is Resource.Success -> {
- Log.e("response", "-->"+response)
- val getCodeResponse: GetCodeResponse =
- Gson().fromJson(response.toString(), GetCodeResponse::class.java)
- getCodeResponse.Response.StatusCode.let { code ->
- when (code) {
- 200 -> {
- listOfFrequency = getCodeResponse.Response.GetCodesList
- setViewPager()
- }
- // 650 -> refreshToken()
- else -> {}
- }
- }
- }
-
- is Resource.Error -> {
- response.message?.let { message ->
- Log.e(" ", "An error occurred:$message")
- }
- }
- is Resource.Loading -> {
-
- }
- }
- }
- }
-
- // set Default Step
- private fun defaultShape(): GradientDrawable {
- val shape = GradientDrawable()
- shape.shape = GradientDrawable.OVAL
- shape.setColor(Color.WHITE)
- shape.setStroke(6, Color.parseColor(Colors.colorDefault))
- return shape
- }
-
- // set Selected Step
- private fun selectedShape(): GradientDrawable {
- val shape = GradientDrawable()
- shape.shape = GradientDrawable.OVAL
- shape.setColor(Color.parseColor(Colors.colorDefault))
- shape.setStroke(6, Color.parseColor(Colors.colorDefault))
- return shape
- }
-
// set background for selected/ default step
private fun setBackground(
drawable: Drawable?,
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 c4e1e1b..36dcfdf 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
@@ -34,7 +34,7 @@ class StepOneBajajFDFragment : Fragment() {
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
private lateinit var rgMaturity: RadioButton
- public lateinit var listOfTenure : List
+ private lateinit var listOfTenure: List
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment {
@@ -67,17 +67,28 @@ class StepOneBajajFDFragment : Fragment() {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
- binding.tlDepositAmount.error = null
+ if (binding.tlDepositAmount.error != null) {
+ binding.tlDepositAmount.error = null
+ }
}
})
// Frequency
if ((activity as BajajFdMainActivity).listOfFrequency.isNotEmpty()) {
- val adapter = ArrayAdapter(activity as BajajFdMainActivity, R.layout.spinner_dropdown, (activity as BajajFdMainActivity).listOfFrequency)
+ // val adapter = SpinnerAdapter( activity as BajajFdMainActivity,(activity as BajajFdMainActivity).listOfFrequency)
+
+ 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
+ if (binding.tlInterestPayout.error != null) {
+ binding.tlInterestPayout.error = null
+ }
+ binding.tvFrequency.text =
+ (activity as BajajFdMainActivity).listOfFrequency[position].Value
getRatesApi()
}
}
@@ -85,7 +96,7 @@ class StepOneBajajFDFragment : Fragment() {
// Tenure
if (listOfTenure.isNotEmpty()) {
binding.spTenure.setOnItemClickListener { parent, view, position, id ->
-
+ Log.e("Tenure", "--->".plus(listOfTenure[position].Tenure))
}
}
@@ -140,7 +151,7 @@ class StepOneBajajFDFragment : Fragment() {
getCodeRequest.Category = "InterestPayoutFreq"
getCodeRequest.Language = "EN"
getCodeRequest.InputValue = ""
- val codeRequest : String = Gson().toJson(getCodeRequest);
+ val codeRequest: String = Gson().toJson(getCodeRequest)
val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull())
stepOneBajajFDViewModel.getCode(requestBody)
stepOneBajajFDViewModel.getRatesMutableData.observe(this) { response ->
@@ -172,14 +183,13 @@ class StepOneBajajFDFragment : Fragment() {
}
-
private fun getRatesApi() {
val getRatesRequest = GetRatesRequest()
getRatesRequest.fdProvider = "Bajaj"
getRatesRequest.frequency = binding.spInterestPayout.text.toString()
- if (binding.swSeniorCitizen.isChecked){
+ if (binding.swSeniorCitizen.isChecked) {
getRatesRequest.type = "Non Senior Citizen"
- }else{
+ } else {
getRatesRequest.type = "Senior Citizen"
}
stepOneBajajFDViewModel.getRates(getRatesRequest)
@@ -187,11 +197,11 @@ class StepOneBajajFDFragment : Fragment() {
when (response) {
is Resource.Success -> {
val getRatesResponse: GetRatesResponse =
- Gson().fromJson(response.toString(), GetRatesResponse::class.java)
+ Gson().fromJson(response.data.toString(), GetRatesResponse::class.java)
getRatesResponse.Response.StatusCode.let { code ->
when (code) {
200 -> getRatesData(getRatesResponse)
- // 650 -> refreshToken()
+ // 650 -> refreshToken()
else -> {}
}
}
@@ -218,7 +228,12 @@ class StepOneBajajFDFragment : Fragment() {
private fun getRatesData(getRatesResponse: GetRatesResponse) {
listOfTenure = getRatesResponse.Response.ROIDatalist
- val adapter = ArrayAdapter(activity as BajajFdMainActivity, R.layout.spinner_dropdown, listOfTenure)
+ 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/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
index b48c13c..c17c551 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
@@ -3,6 +3,8 @@ package com.nivesh.production.bajajfd.util
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
+import android.graphics.Color
+import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
@@ -106,6 +108,24 @@ class Common {
builder.show()
}
+ // set Default Step
+ fun defaultShape(): GradientDrawable {
+ val shape = GradientDrawable()
+ shape.shape = GradientDrawable.OVAL
+ shape.setColor(Color.WHITE)
+ shape.setStroke(6, Color.parseColor(Colors.colorDefault))
+ return shape
+ }
+
+ // set Selected Step
+ fun selectedShape(): GradientDrawable {
+ val shape = GradientDrawable()
+ shape.shape = GradientDrawable.OVAL
+ shape.setColor(Color.parseColor(Colors.colorDefault))
+ shape.setStroke(6, Color.parseColor(Colors.colorDefault))
+ return shape
+ }
+
fun commonErrorMethod(
inputText: TextInputEditText,
inputError: TextInputLayout,
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 b2bcb06..89da32b 100644
--- a/app/src/main/res/layout/fragment_bajajfd_step_one.xml
+++ b/app/src/main/res/layout/fragment_bajajfd_step_one.xml
@@ -82,8 +82,6 @@
android:layout_height="@dimen/margin_53"
android:layout_margin="@dimen/margin_10"
android:hint="@string/investmentAmount"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvFdRating">
\ No newline at end of file