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" /> <show-object-properties value="true" />
<loaded-nodes /> <loaded-nodes />
</component> </component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.DatabaseFileManager"> <component name="DBNavigator.Project.DatabaseFileManager">
<open-files /> <open-files />
</component> </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( data class GetCodes(
val Label: String, val Label: String,
val Value: 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 ROI: Double,
val Tenure: String, val Tenure: String,
val Type: 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 package com.nivesh.production.bajajfd.ui.activity
import android.graphics.Color
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import androidx.appcompat.app.AppCompatActivity 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.fragment.*
import com.nivesh.production.bajajfd.ui.providerfactory.FDModelProviderFactory import com.nivesh.production.bajajfd.ui.providerfactory.FDModelProviderFactory
import com.nivesh.production.bajajfd.ui.providerfactory.GetRatesModelProviderFactory 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.util.Resource
import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel
import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel
@ -32,7 +31,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
lateinit var viewModel: BajajFDViewModel lateinit var viewModel: BajajFDViewModel
lateinit var listOfFrequency : List<GetCodes>
lateinit var listOfFrequency: List<GetCodes>
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -46,11 +45,15 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface {
setContentView(binding.root) setContentView(binding.root)
//start Repository //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() listOfFrequency = ArrayList()
getCodeApi() 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() { private fun setViewPager() {
// steps setting // steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape()) 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 // set background for selected/ default step
private fun setBackground( private fun setBackground(
drawable: Drawable?, 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 bajajFDInterface: BajajFDInterface
private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
private lateinit var rgMaturity: RadioButton private lateinit var rgMaturity: RadioButton
public lateinit var listOfTenure : List<ROIDatalist>
private lateinit var listOfTenure: List<ROIDatalist>
companion object { companion object {
fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment { fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment {
@ -67,17 +67,28 @@ class StepOneBajajFDFragment : Fragment() {
} }
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { 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 // Frequency
if ((activity as BajajFdMainActivity).listOfFrequency.isNotEmpty()) { 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.setAdapter(adapter)
binding.spInterestPayout.setOnItemClickListener { parent, view, position, id -> 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() getRatesApi()
} }
} }
@ -85,7 +96,7 @@ class StepOneBajajFDFragment : Fragment() {
// Tenure // Tenure
if (listOfTenure.isNotEmpty()) { if (listOfTenure.isNotEmpty()) {
binding.spTenure.setOnItemClickListener { parent, view, position, id -> 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.Category = "InterestPayoutFreq"
getCodeRequest.Language = "EN" getCodeRequest.Language = "EN"
getCodeRequest.InputValue = "" getCodeRequest.InputValue = ""
val codeRequest : String = Gson().toJson(getCodeRequest);
val codeRequest: String = Gson().toJson(getCodeRequest)
val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull()) val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull())
stepOneBajajFDViewModel.getCode(requestBody) stepOneBajajFDViewModel.getCode(requestBody)
stepOneBajajFDViewModel.getRatesMutableData.observe(this) { response -> stepOneBajajFDViewModel.getRatesMutableData.observe(this) { response ->
@ -172,14 +183,13 @@ class StepOneBajajFDFragment : Fragment() {
} }
private fun getRatesApi() { private fun getRatesApi() {
val getRatesRequest = GetRatesRequest() val getRatesRequest = GetRatesRequest()
getRatesRequest.fdProvider = "Bajaj" getRatesRequest.fdProvider = "Bajaj"
getRatesRequest.frequency = binding.spInterestPayout.text.toString() getRatesRequest.frequency = binding.spInterestPayout.text.toString()
if (binding.swSeniorCitizen.isChecked){
if (binding.swSeniorCitizen.isChecked) {
getRatesRequest.type = "Non Senior Citizen" getRatesRequest.type = "Non Senior Citizen"
}else{
} else {
getRatesRequest.type = "Senior Citizen" getRatesRequest.type = "Senior Citizen"
} }
stepOneBajajFDViewModel.getRates(getRatesRequest) stepOneBajajFDViewModel.getRates(getRatesRequest)
@ -187,11 +197,11 @@ class StepOneBajajFDFragment : Fragment() {
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
val getRatesResponse: GetRatesResponse = val getRatesResponse: GetRatesResponse =
Gson().fromJson(response.toString(), GetRatesResponse::class.java)
Gson().fromJson(response.data.toString(), GetRatesResponse::class.java)
getRatesResponse.Response.StatusCode.let { code -> getRatesResponse.Response.StatusCode.let { code ->
when (code) { when (code) {
200 -> getRatesData(getRatesResponse) 200 -> getRatesData(getRatesResponse)
// 650 -> refreshToken()
// 650 -> refreshToken()
else -> {} else -> {}
} }
} }
@ -218,7 +228,12 @@ class StepOneBajajFDFragment : Fragment() {
private fun getRatesData(getRatesResponse: GetRatesResponse) { private fun getRatesData(getRatesResponse: GetRatesResponse) {
listOfTenure = getRatesResponse.Response.ROIDatalist 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) 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.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.NetworkCapabilities import android.net.NetworkCapabilities
import android.os.Build import android.os.Build
@ -106,6 +108,24 @@ class Common {
builder.show() 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( fun commonErrorMethod(
inputText: TextInputEditText, inputText: TextInputEditText,
inputError: TextInputLayout, 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_height="@dimen/margin_53"
android:layout_margin="@dimen/margin_10" android:layout_margin="@dimen/margin_10"
android:hint="@string/investmentAmount" android:hint="@string/investmentAmount"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvFdRating"> app:layout_constraintTop_toBottomOf="@+id/tvFdRating">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
@ -106,8 +104,6 @@
android:layout_height="@dimen/margin_48" android:layout_height="@dimen/margin_48"
android:layout_margin="@dimen/margin_10" android:layout_margin="@dimen/margin_10"
app:hintEnabled="false" app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount"> app:layout_constraintTop_toBottomOf="@+id/tlDepositAmount">
<com.google.android.material.textfield.MaterialAutoCompleteTextView <com.google.android.material.textfield.MaterialAutoCompleteTextView
@ -130,8 +126,6 @@
android:layout_height="@dimen/margin_48" android:layout_height="@dimen/margin_48"
android:layout_margin="@dimen/margin_10" android:layout_margin="@dimen/margin_10"
app:hintEnabled="false" app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tlInterestPayout"> app:layout_constraintTop_toBottomOf="@+id/tlInterestPayout">
<com.google.android.material.textfield.MaterialAutoCompleteTextView <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:padding="@dimen/margin_8"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_14" android:textSize="@dimen/text_size_14"
android:id="@+id/tvText"
style="@style/regularStyle"> style="@style/regularStyle">
</TextView> </TextView>

Loading…
Cancel
Save

Powered by TurnKey Linux.