Browse Source

working on first screen

PankajBranch
Hemant Khadase 2 years ago
parent
commit
539a1fcd3b
9 changed files with 148 additions and 87 deletions
  1. +3
    -0
      .idea/dbnavigator.xml
  2. +35
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt
  3. +5
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  4. +5
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt
  5. +51
    -66
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  6. +28
    -13
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  7. +20
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  8. +0
    -6
      app/src/main/res/layout/fragment_bajajfd_step_one.xml
  9. +1
    -0
      app/src/main/res/layout/spinner_dropdown.xml

+ 3
- 0
.idea/dbnavigator.xml View File

@ -11,6 +11,9 @@
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>


+ 35
- 0
app/src/main/java/com/nivesh/production/bajajfd/adapter/SpinnerAdapter.kt View File

@ -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<GetCodes>
) :
ArrayAdapter<GetCodes>(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<View>(R.id.tvText) as TextView
val getCode : GetCodes = listItems[position]
lbl.text = getCode.Value
return v
}
}

+ 5
- 1
app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt View File

@ -3,4 +3,8 @@ package com.nivesh.production.bajajfd.model
data class GetCodes(
val Label: String,
val Value: String
)
) {
override fun toString(): String {
return Value
}
}

+ 5
- 1
app/src/main/java/com/nivesh/production/bajajfd/model/ROIDataList.kt View File

@ -4,4 +4,8 @@ data class ROIDatalist(
val ROI: Double,
val Tenure: String,
val Type: String
)
) {
override fun toString(): String {
return Tenure.plus(" Months ").plus(" | ").plus(ROI).plus(" % ")
}
}

+ 51
- 66
app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt View File

@ -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<GetCodes>
lateinit var listOfFrequency: List<GetCodes>
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?,


+ 28
- 13
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt View File

@ -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<ROIDatalist>
private lateinit var listOfTenure: List<ROIDatalist>
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<GetCodes>(
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<ROIDatalist>(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfTenure
)
binding.spTenure.setAdapter(adapter)
}


+ 20
- 0
app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt View File

@ -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,


+ 0
- 6
app/src/main/res/layout/fragment_bajajfd_step_one.xml View File

@ -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">
<com.google.android.material.textfield.TextInputEditText
@ -106,8 +104,6 @@
android:layout_height="@dimen/margin_48"
android:layout_margin="@dimen/margin_10"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
@ -130,8 +126,6 @@
android:layout_height="@dimen/margin_48"
android:layout_margin="@dimen/margin_10"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlInterestPayout">
<com.google.android.material.textfield.MaterialAutoCompleteTextView


+ 1
- 0
app/src/main/res/layout/spinner_dropdown.xml View File

@ -5,6 +5,7 @@
android:padding="@dimen/margin_8"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:id="@+id/tvText"
style="@style/regularStyle">
</TextView>

Loading…
Cancel
Save

Powered by TurnKey Linux.