Browse Source

Merge branch 'HemantBranch' of https://git.nivesh.com:443/hemant.khadase/BajajFDLib into ManojBranch

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt
#	app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
#	app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
PankajBranch
Manoj 2 years ago
parent
commit
dfe32f366f
25 changed files with 392 additions and 253 deletions
  1. +6
    -2
      app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt
  2. +6
    -29
      app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt
  3. +14
    -6
      app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt
  4. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  5. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt
  6. +2
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  7. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseX.kt
  8. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXX.kt
  9. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/SaveFDOtherDataResponse.kt
  10. +4
    -4
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  11. +146
    -55
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  12. +7
    -9
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
  13. +40
    -19
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  14. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  15. +45
    -53
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  16. +10
    -2
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  17. +15
    -2
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  18. +9
    -19
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  19. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt
  20. +1
    -7
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt
  21. +2
    -20
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
  22. +6
    -18
      app/src/main/res/layout/item_customer_list_preview.xml
  23. +43
    -0
      app/src/main/res/layout/row_fd_pay.xml
  24. +5
    -1
      app/src/main/res/values-hi-rIN/strings.xml
  25. +3
    -1
      app/src/main/res/values/strings.xml

+ 6
- 2
app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt View File

@ -1,14 +1,18 @@
package com.nivesh.production.bajajfd package com.nivesh.production.bajajfd
import android.app.Application import android.app.Application
import android.content.Context
class BajajApplication : Application() { class BajajApplication : Application() {
private var mInstance: BajajApplication? = null private var mInstance: BajajApplication? = null
// private val mRequestQueue: RequestQueue? = null // private val mRequestQueue: RequestQueue? = null
companion object {
var appContext: Context? = null
}
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
mInstance = this;
mInstance = this
appContext = applicationContext
} }
@Synchronized @Synchronized


+ 6
- 29
app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt View File

@ -3,21 +3,20 @@ package com.nivesh.production.bajajfd.adapter
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.switchmaterial.SwitchMaterial import com.google.android.material.switchmaterial.SwitchMaterial
import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.model.GetCodes import com.nivesh.production.bajajfd.model.GetCodes
class CustomerListAdapter( class CustomerListAdapter(
private val customerList: List<GetCodes>?
private val customerList: MutableList<GetCodes>?
) : RecyclerView.Adapter<CustomerListAdapter.BankListViewHolder>() { ) : RecyclerView.Adapter<CustomerListAdapter.BankListViewHolder>() {
inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val tvCustomerName: SwitchMaterial = itemView.findViewById(R.id.tvCustomerName) val tvCustomerName: SwitchMaterial = itemView.findViewById(R.id.tvCustomerName)
val txtLabel: TextView = itemView.findViewById(R.id.txtLabel)
} }
private var checkedPosition: Int = -2
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
viewType: Int viewType: Int
@ -34,18 +33,9 @@ class CustomerListAdapter(
override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { override fun onBindViewHolder(holder: BankListViewHolder, position: Int) {
val cList = customerList?.get(position) val cList = customerList?.get(position)
if (cList != null) { if (cList != null) {
holder.itemView.apply {
holder.tvCustomerName.text = cList.Label
setOnClickListener {
onItemClickListener?.let {
it(cList)
if (checkedPosition != holder.adapterPosition) {
notifyItemChanged(checkedPosition)
checkedPosition = holder.adapterPosition
}
}
}
holder.txtLabel.text = cList.Label
holder.tvCustomerName.setOnCheckedChangeListener { _, isChecked ->
cList.isSelected = isChecked
} }
} }
} }
@ -54,17 +44,4 @@ class CustomerListAdapter(
return customerList?.size!! return customerList?.size!!
} }
private var onItemClickListener: ((GetCodes) -> Unit)? = null
fun setOnItemClickListener(listener: (GetCodes) -> Unit) {
onItemClickListener = listener
}
fun getSelected(): GetCodes? {
return if (checkedPosition != -1) {
customerList?.get(checkedPosition)
} else null
}
} }

+ 14
- 6
app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt View File

@ -1,7 +1,6 @@
package com.nivesh.production.bajajfd.api package com.nivesh.production.bajajfd.api
import android.content.Context
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.BajajApplication
import com.nivesh.production.bajajfd.interfaces.ApiInterface import com.nivesh.production.bajajfd.interfaces.ApiInterface
import com.nivesh.production.bajajfd.util.Constants.Companion.BASE_URL import com.nivesh.production.bajajfd.util.Constants.Companion.BASE_URL
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -9,13 +8,13 @@ import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory import retrofit2.converter.gson.GsonConverterFactory
import java.security.KeyStore import java.security.KeyStore
import java.security.SecureRandom
import java.util.* import java.util.*
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import javax.net.ssl.* import javax.net.ssl.*
class ApiClient { class ApiClient {
val context = BajajApplication.appContext
companion object { companion object {
private val client by lazy { private val client by lazy {
//lazy means we only initialize this here once //lazy means we only initialize this here once
@ -25,7 +24,6 @@ class ApiClient {
//see the body of response //see the body of response
//create client for retrofit //create client for retrofit
val trustManagerFactory: TrustManagerFactory = val trustManagerFactory: TrustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()) TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
trustManagerFactory.init(null as KeyStore?) trustManagerFactory.init(null as KeyStore?)
@ -44,7 +42,12 @@ class ApiClient {
.addInterceptor(logging) .addInterceptor(logging)
.sslSocketFactory(sslSocketFactory, trustManager) .sslSocketFactory(sslSocketFactory, trustManager)
.retryOnConnectionFailure(true) .retryOnConnectionFailure(true)
.callTimeout(2, TimeUnit.MINUTES)
.connectTimeout(20, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build() .build()
Retrofit.Builder() Retrofit.Builder()
.baseUrl(BASE_URL) .baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create())
@ -55,4 +58,9 @@ class ApiClient {
client.create(ApiInterface::class.java) client.create(ApiInterface::class.java)
} }
} }
}
}

+ 2
- 2
app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt View File

@ -28,13 +28,13 @@ interface ApiInterface {
@POST("WebApi_Bajaj/api/DocumentsUpload") @POST("WebApi_Bajaj/api/DocumentsUpload")
suspend fun documentsUpload( suspend fun documentsUpload(
@Body documentUpload: DocumentUpload,
@Body requestBody: DocumentUpload,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>
@POST("WebApi_Bajaj/api/SaveFDOtherData") @POST("WebApi_Bajaj/api/SaveFDOtherData")
suspend fun saveFDOtherData( suspend fun saveFDOtherData(
@Body requestBody: RequestBody,
@Body requestBody: SaveFDOtherDataRequest,
@Header("token") token: String @Header("token") token: String
): Response<JsonObject> ): Response<JsonObject>


+ 1
- 1
app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt View File

@ -7,5 +7,5 @@ interface BajajFDInterface {
fun stepOneApi(data: String?) fun stepOneApi(data: String?)
fun stepTwoApi(data: CreateFDRequest) fun stepTwoApi(data: CreateFDRequest)
fun stepThreeApi(data: CreateFDRequest) fun stepThreeApi(data: CreateFDRequest)
fun stepFourApi(data: SaveFDOtherDataRequest)
fun stepFourApi(data: SaveFDOtherDataRequest, payUrl: String, value: String)
} }

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

@ -2,7 +2,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,
var isSelected : Boolean
) { ) {
override fun toString(): String { override fun toString(): String {
return Label return Label


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

@ -2,7 +2,7 @@ package com.nivesh.production.bajajfd.model
data class ResponseX( data class ResponseX(
val Errors: List<Errors>, val Errors: List<Errors>,
val GetCodesList: List<GetCodes>,
val GetCodesList: MutableList<GetCodes>,
val Message: String, val Message: String,
val Status: String, val Status: String,
val StatusCode: Int val StatusCode: Int

+ 8
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXX.kt View File

@ -0,0 +1,8 @@
package com.nivesh.production.bajajfd.model
data class ResponseXXXXXXXXXXXXX(
val Errors: List<Errors>,
val Message: String,
val Status: String,
val StatusCode: Int
)

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

@ -0,0 +1,5 @@
package com.nivesh.production.bajajfd.model
data class SaveFDOtherDataResponse(
val Response: ResponseXXXXXXXXXXXXX
)

+ 4
- 4
app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt View File

@ -26,11 +26,11 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) = suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) =
apiInterface.createFDApp(createFDRequest, token) apiInterface.createFDApp(createFDRequest, token)
suspend fun documentsUploadResponse(documentUpload: DocumentUpload, token: String) =
apiInterface.documentsUpload(documentUpload, token)
suspend fun documentsUploadResponse(getRatesRequest: DocumentUpload, token: String) =
apiInterface.documentsUpload(getRatesRequest, token)
suspend fun saveFDOtherDataResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun saveFDOtherDataResponse(getRatesRequest: SaveFDOtherDataRequest, token: String) =
apiInterface.saveFDOtherData(getRatesRequest, token)
suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) = suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) =
apiInterface.getFDDetails(getRatesRequest, token) apiInterface.getFDDetails(getRatesRequest, token)


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

@ -1,12 +1,20 @@
package com.nivesh.production.bajajfd.ui.activity package com.nivesh.production.bajajfd.ui.activity
import android.annotation.SuppressLint
import android.app.Dialog
import android.graphics.Bitmap
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter
import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding
@ -46,7 +54,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
var getClientDetailsResponse: getClientDetailsResponse var getClientDetailsResponse: getClientDetailsResponse
private var stepCount: Int = 0 private var stepCount: Int = 0
private lateinit var sectionsPagerAdapter : SectionsPagerAdapter
private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
private lateinit var fragments: Array<Fragment> private lateinit var fragments: Array<Fragment>
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -108,48 +116,51 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
} }
private fun getStepsCountApi() { private fun getStepsCountApi() {
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(com.nivesh.production.bajajfd.R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872"
viewModel.getStepsCount(fdStepsCount, token)
viewModel.getStepsCountMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->${response.data}")
val stepsCountResponse: StepsCountResponse =
Gson().fromJson(response.data?.toString(), StepsCountResponse::class.java)
stepsCountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
stepCount = stepsCountResponse.Response.StepsCount
getClientDetailsApi(stepsCountResponse.Response.StepsCount)
}
650 -> refreshToken(fdStepsCount)
else -> {
showDialogValidation(
this@BajajFdMainActivity,
stepsCountResponse.Response.Errors[0].ErrorMessage
)
if (Common.isNetworkAvailable(this)) {
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872"
viewModel.getStepsCount(fdStepsCount, token)
viewModel.getStepsCountMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val stepsCountResponse: StepsCountResponse =
Gson().fromJson(
response.data?.toString(),
StepsCountResponse::class.java
)
stepsCountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
stepCount = stepsCountResponse.Response.StepsCount
getClientDetailsApi(stepsCountResponse.Response.StepsCount)
}
650 -> refreshToken(fdStepsCount)
else -> {
showDialogValidation(
this@BajajFdMainActivity,
stepsCountResponse.Response.Errors[0].ErrorMessage
)
}
} }
} }
} }
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(this@BajajFdMainActivity, message)
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(this@BajajFdMainActivity, message)
}
} }
}
is Resource.Loading -> {
is Resource.Loading -> {
}
} }
} }
} }
} }
private fun refreshToken(fdStepsCount: FDStepsCountRequest) { private fun refreshToken(fdStepsCount: FDStepsCountRequest) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
}
} }
@ -157,20 +168,20 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
val getClientDetailsRequest = getClientDetailsRequest() val getClientDetailsRequest = getClientDetailsRequest()
getClientDetailsRequest.client_code = "8872" getClientDetailsRequest.client_code = "8872"
getClientDetailsRequest.AppOrWeb = getString(com.nivesh.production.bajajfd.R.string.app)
getClientDetailsRequest.AppOrWeb = getString(R.string.app)
getClientDetailsRequest.sub_broker_code = "1038" getClientDetailsRequest.sub_broker_code = "1038"
val userRequest = UserRequest() val userRequest = UserRequest()
userRequest.UID = 19060 userRequest.UID = 19060
userRequest.IPAddress = "" userRequest.IPAddress = ""
userRequest.Source = getString(com.nivesh.production.bajajfd.R.string.source)
userRequest.AppOrWeb = getString(com.nivesh.production.bajajfd.R.string.app)
userRequest.Source = getString(R.string.source)
userRequest.AppOrWeb = getString(R.string.app)
userRequest.LoggedInRoleId = 5 userRequest.LoggedInRoleId = 5
val deviceInfo = DeviceInfo() val deviceInfo = DeviceInfo()
deviceInfo.device_id = "" deviceInfo.device_id = ""
deviceInfo.device_id_for_UMSId = "" deviceInfo.device_id_for_UMSId = ""
deviceInfo.device_type = getString(com.nivesh.production.bajajfd.R.string.app)
deviceInfo.device_type = getString(R.string.app)
deviceInfo.device_model = "" deviceInfo.device_model = ""
deviceInfo.device_token = "" deviceInfo.device_token = ""
deviceInfo.device_name = "" deviceInfo.device_name = ""
@ -383,29 +394,23 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
// step 2 response // step 2 response
override fun stepTwoApi(data: CreateFDRequest) { override fun stepTwoApi(data: CreateFDRequest) {
Log.e("stepTwoApi", " response ---> $data")
// if (stepCount == 4) {
// // go to step 3 image Upload
// binding.viewPager.currentItem = 2
// }else{
// call create fd api bypass step 3
createFDApi(data , 2,"2")
// }
Log.e("stepTwoApi", " response ---> " + Gson().toJson(data))
createFDApi(data, 2, "2")
} }
// step 3 response // step 3 response
override fun stepThreeApi(data: CreateFDRequest) { override fun stepThreeApi(data: CreateFDRequest) {
Log.e("stepThreeApi", " response ---> $data")
Log.e("stepThreeApi", " response --->" + Gson().toJson(data))
// call create fd api // call create fd api
createFDApi(data, 3, "3") createFDApi(data, 3, "3")
} }
// step 4 response // step 4 response
override fun stepFourApi(data: SaveFDOtherDataRequest) {
Log.e("stepFourApi", " response ---> $data")
// binding.viewPager.currentItem = 4
override fun stepFourApi(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
Log.e("stepFourApi", " response ---> " + Gson().toJson(data))
// binding.viewPager.currentItem = 4
saveFDOtherData(data, payUrl, value)
} }
private fun createFDApi(data: CreateFDRequest, currentItem: Int, step: String) { private fun createFDApi(data: CreateFDRequest, currentItem: Int, step: String) {
@ -425,16 +430,19 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
when (code) { when (code) {
200 -> { 200 -> {
binding.viewPager.currentItem = currentItem binding.viewPager.currentItem = currentItem
if (step == "2"){
if (step == "2") {
val stepThreeBajajFDFragment: StepThreeBajajFDFragment = val stepThreeBajajFDFragment: StepThreeBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepThreeBajajFDFragment sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepThreeBajajFDFragment
stepThreeBajajFDFragment.displayReceivedData(createFDApplicationResponse)
stepThreeBajajFDFragment.displayReceivedData(
createFDApplicationResponse
)
} else {
val stepFourFDFragment: StepFourBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepFourBajajFDFragment
stepFourFDFragment.displayReceivedData(
createFDApplicationResponse
)
} }
else{
val stepFourFDFragment: StepFourBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepFourBajajFDFragment
stepFourFDFragment.displayReceivedData(createFDApplicationResponse)
}
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
@ -459,4 +467,87 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
} }
} }
} }
private fun saveFDOtherData(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
if (Common.isNetworkAvailable(this)) {
viewModel.saveFDOtherData(data, token)
viewModel.getFDOtherMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->" + response.data.toString())
val saveFDOtherDataResponse: SaveFDOtherDataResponse =
Gson().fromJson(
response.data?.toString(),
SaveFDOtherDataResponse::class.java
)
saveFDOtherDataResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
paymentDialog(payUrl, value)
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
this@BajajFdMainActivity,
saveFDOtherDataResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(this@BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
}
}
}
}
@SuppressLint("SetJavaScriptEnabled")
fun paymentDialog(payUrl: String, value: String) {
Log.e("payUrl", "-->$payUrl")
Log.e("value", "-->$value")
val dialogWebView = Dialog(this@BajajFdMainActivity)
dialogWebView.setContentView(R.layout.row_fd_pay)
dialogWebView.setCancelable(true)
val tvCancel = dialogWebView.findViewById<TextView>(R.id.tvCancel)
tvCancel.setOnClickListener {
dialogWebView.dismiss()
}
val lp = WindowManager.LayoutParams()
lp.copyFrom(dialogWebView.window?.attributes)
lp.width = WindowManager.LayoutParams.MATCH_PARENT
lp.height = WindowManager.LayoutParams.MATCH_PARENT
dialogWebView.window?.attributes = lp
val wVPay = dialogWebView.findViewById<WebView>(R.id.wVPay)
wVPay.webViewClient = MyWebViewClient()
wVPay.settings.javaScriptEnabled = true
wVPay.settings.domStorageEnabled = true
wVPay.loadUrl(payUrl)
dialogWebView.show()
}
class MyWebViewClient : WebViewClient() {
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
Log.e("onPageStarted", "-->$url")
if (url.isNotEmpty() && url.contains("CustomerPaymentResponse")) {
}
}
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
}
}
} }

+ 7
- 9
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt View File

@ -8,30 +8,27 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel
class StepFiveBajajFDFragment : Fragment() { class StepFiveBajajFDFragment : Fragment() {
private lateinit var stepFourViewModel: StepFiveBajajFDViewModel
private lateinit var stepFiveBajajFDViewModel: StepFiveBajajFDViewModel
private var _binding: FragmentBajajfdStepFiveBinding? = null private var _binding: FragmentBajajfdStepFiveBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
private lateinit var bajajFDInterface: BajajFDInterface private lateinit var bajajFDInterface: BajajFDInterface
companion object { companion object {
fun getInstance(fdInterface: BajajFDInterface): StepFiveBajajFDFragment { fun getInstance(fdInterface: BajajFDInterface): StepFiveBajajFDFragment {
val stepFourFragment = StepFiveBajajFDFragment()
stepFourFragment.setApi(fdInterface)
return stepFourFragment
val stepFiveFragment = StepFiveBajajFDFragment()
stepFiveFragment.setApi(fdInterface)
return stepFiveFragment
} }
} }
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces bajajFDInterface = bajajFDInterfaces
} }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater, container: ViewGroup?,
@ -40,6 +37,7 @@ class StepFiveBajajFDFragment : Fragment() {
_binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false) _binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false)
val root = binding.root val root = binding.root
stepFiveBajajFDViewModel= (activity as BajajFdMainActivity).stepFiveBajajFDViewModel
// val textView: TextView = binding.sectionLabel // val textView: TextView = binding.sectionLabel
// stepFourViewModel.text.observe(viewLifecycleOwner) { // stepFourViewModel.text.observe(viewLifecycleOwner) {


+ 40
- 19
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt View File

@ -24,7 +24,11 @@ class StepFourBajajFDFragment : BaseFragment() {
private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel private lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel
private var _binding: FragmentBajajfdStepFourBinding? = null private var _binding: FragmentBajajfdStepFourBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
private var uniqueId: String? = ""
private lateinit var listOfCustomer: MutableList<GetCodes>
private var selectedList: String = ""
private var uniqueId: String = ""
private var payUrl : String = ""
private var Value : String = ""
private lateinit var bajajFDInterface: BajajFDInterface private lateinit var bajajFDInterface: BajajFDInterface
@ -55,13 +59,25 @@ class StepFourBajajFDFragment : BaseFragment() {
} }
binding.btnNext.setOnClickListener { binding.btnNext.setOnClickListener {
selectedList = ""
for (getCodes in listOfCustomer) {
if (getCodes.isSelected) {
selectedList = if (selectedList.isEmpty()) {
getCodes.Value
} else {
selectedList.plus(",").plus(getCodes.Value)
}
}
}
Log.e("selectedList", "-->$selectedList")
if (binding.checkBox.isChecked) { if (binding.checkBox.isChecked) {
val saveFDOtherDataRequest = SaveFDOtherDataRequest()
val saveFDOtherDataRequest = SaveFDOtherDataRequest()
saveFDOtherDataRequest.FDProvider = getString(R.string.bajaj) saveFDOtherDataRequest.FDProvider = getString(R.string.bajaj)
saveFDOtherDataRequest.UniqueId = uniqueId saveFDOtherDataRequest.UniqueId = uniqueId
saveFDOtherDataRequest.Values = ""
saveFDOtherDataRequest.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
bajajFDInterface.stepFourApi(saveFDOtherDataRequest)
saveFDOtherDataRequest.Values = selectedList
saveFDOtherDataRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value)
} else { } else {
showDialogValidation( showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
@ -70,18 +86,17 @@ class StepFourBajajFDFragment : BaseFragment() {
} }
} }
binding.btnBack.setOnClickListener{
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2 (activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
} }
return root return root
} }
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
Log.e("createFDApplication", "Response-->"+createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId)
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId)
customerListApi()
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId)
customerListApi()
} }
@ -103,7 +118,8 @@ class StepFourBajajFDFragment : BaseFragment() {
when (code) { when (code) {
200 -> { 200 -> {
if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { if (getCodeResponse.Response.GetCodesList.isNotEmpty()) {
setUpRecyclerView(getCodeResponse.Response.GetCodesList)
listOfCustomer = getCodeResponse.Response.GetCodesList
setUpRecyclerView(listOfCustomer)
} }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
@ -132,7 +148,7 @@ class StepFourBajajFDFragment : BaseFragment() {
} }
private fun setUpRecyclerView(getCustomerList: List<GetCodes>) {
private fun setUpRecyclerView(getCustomerList: MutableList<GetCodes>) {
binding.rvTerms.layoutManager = binding.rvTerms.layoutManager =
LinearLayoutManager(activity as BajajFdMainActivity) LinearLayoutManager(activity as BajajFdMainActivity)
val customerListAdapter = CustomerListAdapter(getCustomerList) val customerListAdapter = CustomerListAdapter(getCustomerList)
@ -144,7 +160,8 @@ class StepFourBajajFDFragment : BaseFragment() {
if (Common.isNetworkAvailable(mActivity!!)) { if (Common.isNetworkAvailable(mActivity!!)) {
val getFDDetailsRequest = GetFDDetailsRequest() val getFDDetailsRequest = GetFDDetailsRequest()
getFDDetailsRequest.FDProvider = mActivity!!.getString(R.string.bajaj) getFDDetailsRequest.FDProvider = mActivity!!.getString(R.string.bajaj)
getFDDetailsRequest.NiveshClientCode = (mActivity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
getFDDetailsRequest.NiveshClientCode =
(mActivity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
getFDDetailsRequest.UniqueId = uniqueId getFDDetailsRequest.UniqueId = uniqueId
stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token) stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token)
stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response ->
@ -160,19 +177,23 @@ class StepFourBajajFDFragment : BaseFragment() {
when (code) { when (code) {
200 -> { 200 -> {
binding.tvInvestedAmount.text = binding.tvInvestedAmount.text =
getString(R.string.rs).plus(getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString())
getString(R.string.rs).plus(getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString())
binding.tvTenure.text = binding.tvTenure.text =
getFDDetailsResponse.Response.FDDataResponse.Tenure.toString().plus(" Months")
getFDDetailsResponse.Response.FDDataResponse.Tenure.toString()
.plus(" Months")
binding.tvInterestPayout.text = binding.tvInterestPayout.text =
getFDDetailsResponse.Response.FDDataResponse.Frequency getFDDetailsResponse.Response.FDDataResponse.Frequency
binding.tvRateOfInterest.text = binding.tvRateOfInterest.text =
getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString().plus(" % p.a.")
getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString()
.plus(" % p.a.")
payUrl = getFDDetailsResponse.Response.FDDataResponse.PaymentUrl
Value = getFDDetailsResponse.Response.FDDataResponse.Value
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
showDialogValidation( showDialogValidation(
activity as BajajFdMainActivity, activity as BajajFdMainActivity,
getFDDetailsResponse.Response.Message
getFDDetailsResponse.Response.Errors[0].ErrorMessage
) )
} }
} }
@ -195,6 +216,6 @@ class StepFourBajajFDFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
_binding = null
// _binding = null
} }
} }

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

@ -505,6 +505,6 @@ class StepOneBajajFDFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
_binding = null
// _binding = null
} }
} }

+ 45
- 53
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt View File

@ -9,7 +9,6 @@ import android.database.Cursor
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.OpenableColumns import android.provider.OpenableColumns
import android.text.Editable
import android.util.Base64 import android.util.Base64
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
@ -46,14 +45,16 @@ class StepThreeBajajFDFragment : BaseFragment() {
private lateinit var bajajFDInterface: BajajFDInterface private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private var uniqueId: String? = ""
private lateinit var dialog: Dialog private lateinit var dialog: Dialog
private lateinit var front: String
private var takeImageResult: ActivityResultLauncher<Uri>? = null private var takeImageResult: ActivityResultLauncher<Uri>? = null
private var selectImageIntent: ActivityResultLauncher<String>? = null private var selectImageIntent: ActivityResultLauncher<String>? = null
private var fileExt: String? = null
private val mapImage: HashMap<String, String> = HashMap() private val mapImage: HashMap<String, String> = HashMap()
private var selectdImage: String? = null
private var front: String = ""
private var fileExt: String? = ""
private var uniqueId: String? = ""
private var selectedImage: String? = ""
private var checkPANUploadFile: Boolean? = false private var checkPANUploadFile: Boolean? = false
private var checkPhotoUploadFile: Boolean? = false private var checkPhotoUploadFile: Boolean? = false
@ -110,12 +111,12 @@ class StepThreeBajajFDFragment : BaseFragment() {
var uploadPosition = 0 var uploadPosition = 0
for (entry in mapImage.iterator()) { for (entry in mapImage.iterator()) {
uploadPosition++ uploadPosition++
if(entry.key.contains("Main "))
uploadDocApi(entry.key.replace("Main ",""), entry.value, uploadPosition)
else uploadDocApi(entry.key, entry.value, uploadPosition)
if (entry.key.contains("Main ")) {
uploadDocApi(entry.key.replace("Main ", ""), entry.value, uploadPosition)
} else {
uploadDocApi(entry.key, entry.value, uploadPosition)
}
} }
//
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
} }
} }
binding.btnBack.setOnClickListener { binding.btnBack.setOnClickListener {
@ -164,22 +165,20 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
@SuppressLint("Range") @SuppressLint("Range")
fun getFileName(uri: Uri): String? {
var result: String? = null
fun getFileName(uri: Uri): String {
var result = ""
if (uri.scheme == "content") { if (uri.scheme == "content") {
val cursor: Cursor = val cursor: Cursor =
requireActivity().getContentResolver().query(uri, null, null, null, null)!!
try {
if (cursor != null && cursor.moveToFirst()) {
result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME))
requireActivity().contentResolver.query(uri, null, null, null, null)!!
cursor.use { cursor1 ->
if (cursor1.moveToFirst()) {
result = cursor1.getString(cursor1.getColumnIndex(OpenableColumns.DISPLAY_NAME))
} }
} finally {
cursor.close()
} }
} }
if (result == null) {
result = uri.path
val cut = result!!.lastIndexOf('/')
if (result.isEmpty()) {
result = uri.path!!
val cut = result.lastIndexOf('/')
if (cut != -1) { if (cut != -1) {
result = result.substring(cut + 1) result = result.substring(cut + 1)
} }
@ -188,7 +187,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
private fun selectImage(fileType: String) { private fun selectImage(fileType: String) {
selectdImage = fileType
selectedImage = fileType
dialog = Dialog(activity as BajajFdMainActivity) dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout) dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut) val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
@ -233,13 +232,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
} }
private fun checkCameraStoragePermission(
permission: String,
selectImageIntent: ActivityResultLauncher<String>
) {
TODO("Not yet implemented")
}
private fun setOtherUploadLayout(itemName: String) { private fun setOtherUploadLayout(itemName: String) {
binding.tvAadhaarFront.text = itemName.plus(" Front *") binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
@ -261,21 +253,15 @@ class StepThreeBajajFDFragment : BaseFragment() {
private fun uploadDocument(uri: Uri) { private fun uploadDocument(uri: Uri) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val documentUpload = DocumentUpload()
val value: Editable? = binding.spDocType.text
val file_dir: File = requireActivity().cacheDir
val file_ex = File(file_dir.toString().plus("/").plus(getFileName(uri)))
fileExt = file_ex.extension
var file_path: File? = uri.path?.let { File(it) }
encodedFileToBase64(file_ex)
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
fileExt = fileExtension.extension
encodedFileToBase64(fileExtension)
if (checkPANUploadFile == true || checkPhotoUploadFile == true) { if (checkPANUploadFile == true || checkPhotoUploadFile == true) {
mapImage["Main ".plus(selectdImage)] = front
mapImage["Main ".plus(selectedImage)] = front
} else { } else {
selectdImage?.let { mapImage.put(it, front) }
selectedImage?.let { mapImage.put(it, front) }
} }
Log.e("check_data_front", value.toString() + "\n" + front)
} }
} }
@ -291,7 +277,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
@Throws(IOException::class) @Throws(IOException::class)
private fun loadFile(file: File): ByteArray? {
private fun loadFile(file: File): ByteArray {
val inputStream: InputStream = FileInputStream(file) val inputStream: InputStream = FileInputStream(file)
val length = file.length() val length = file.length()
val bytes = ByteArray(length.toInt()) val bytes = ByteArray(length.toInt())
@ -325,31 +311,37 @@ class StepThreeBajajFDFragment : BaseFragment() {
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response ->
when (response) { when (response) {
is Resource.Success -> { is Resource.Success -> {
Log.e("response", "-->$response")
Log.e("UploadImage", "Response-->"+response.data.toString())
val getUploadResponse: UploadResponse = val getUploadResponse: UploadResponse =
Gson().fromJson(response.data?.toString(), UploadResponse::class.java) Gson().fromJson(response.data?.toString(), UploadResponse::class.java)
getUploadResponse.Response.StatusCode.let { code -> getUploadResponse.Response.StatusCode.let { code ->
when (code) { when (code) {
200 -> { 200 -> {
Log.e("check_upload_res", response.message.toString()) Log.e("check_upload_res", response.message.toString())
// if (uploadPosition == mapImage.size) {
Toast.makeText(
requireActivity(),
"".plus(mapImage.size.toString() + " Last Image Uploaded ") +
uploadPosition,
Toast.LENGTH_LONG
).show()
// }
if (uploadPosition == mapImage.size) {
Toast.makeText(
requireActivity(),
"".plus(mapImage.size.toString() + " Last Image Uploaded ") +
uploadPosition,
Toast.LENGTH_LONG
).show()
bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
}
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> {}
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getUploadResponse.Response.Message
)
}
} }
} }
} }
is Resource.Error -> { is Resource.Error -> {
response.message?.let { message -> response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
Common.showDialogValidation(activity as BajajFdMainActivity, message)
} }
} }
is Resource.Loading -> { is Resource.Loading -> {


+ 10
- 2
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt View File

@ -35,6 +35,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.commonSpinnerErrorMethod import com.nivesh.production.bajajfd.util.Common.Companion.commonSpinnerErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.getDate import com.nivesh.production.bajajfd.util.Common.Companion.getDate
import com.nivesh.production.bajajfd.util.Common.Companion.isIndianMobileNo import com.nivesh.production.bajajfd.util.Common.Companion.isIndianMobileNo
import com.nivesh.production.bajajfd.util.Common.Companion.isMinor
import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail
import com.nivesh.production.bajajfd.util.Common.Companion.isValidName import com.nivesh.production.bajajfd.util.Common.Companion.isValidName
import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan
@ -1784,7 +1785,14 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.tlPinCode, binding.tlPinCode,
getString(R.string.validPinCode) getString(R.string.validPinCode)
) )
} else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString()
}else if (binding.edtNomineeDOB.text.toString().isNotEmpty() && isMinor(binding.edtNomineeDOB.text.toString())){
commonErrorMethod(
binding.edtGuardianName,
binding.tlGuardianName,
getString(R.string.validGuardianDetails)
)
}
else if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString()
.isEmpty() .isEmpty()
) { // EditText ) { // EditText
commonErrorAutoCompleteMethod( commonErrorAutoCompleteMethod(
@ -1831,7 +1839,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
_binding = null
// _binding = null
} }
} }


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

@ -9,6 +9,7 @@ import android.net.ConnectivityManager
import android.net.NetworkCapabilities import android.net.NetworkCapabilities
import android.os.Build import android.os.Build
import android.provider.ContactsContract import android.provider.ContactsContract
import android.text.format.DateFormat
import android.util.Patterns import android.util.Patterns
import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
@ -18,6 +19,7 @@ import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.ui.activity.BaseActivity import com.nivesh.production.bajajfd.ui.activity.BaseActivity
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException
import java.net.SocketTimeoutException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import java.util.regex.Matcher import java.util.regex.Matcher
@ -107,6 +109,7 @@ class Common {
fun showDialogValidation(activity: Activity?, message: CharSequence?) { fun showDialogValidation(activity: Activity?, message: CharSequence?) {
val builder = AlertDialog.Builder(activity) val builder = AlertDialog.Builder(activity)
builder.setMessage(message) builder.setMessage(message)
builder.setCancelable(false)
if (activity != null) { if (activity != null) {
builder.setPositiveButton(activity.getString(R.string.ok)) { dialogInterface, _ -> builder.setPositiveButton(activity.getString(R.string.ok)) { dialogInterface, _ ->
dialogInterface.dismiss() dialogInterface.dismiss()
@ -195,13 +198,23 @@ class Common {
return when (t) { return when (t) {
is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
is SocketTimeoutException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
else -> Resource.Error(t.localizedMessage?.toString() ?: "") else -> Resource.Error(t.localizedMessage?.toString() ?: "")
} }
} }
return Resource.Error(response.message()) return Resource.Error(response.message())
} }
fun isMinor(date: String): Boolean {
val simpleDateFormat = SimpleDateFormat("yyyy-mm-dd")
val dt1: Date = simpleDateFormat.parse(date)
val year: Int = DateFormat.format("yyyy", dt1).toString().toInt()
val month: Int = DateFormat.format("mm", dt1).toString().toInt()
val day = DateFormat.format("dd", dt1).toString().toInt()
val userAge: Calendar = GregorianCalendar(year, month, day)
val minAdultAge: Calendar = GregorianCalendar()
minAdultAge.add(Calendar.YEAR, -18)
return minAdultAge.before(userAge)
}
} }
} }

+ 9
- 19
app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt View File

@ -1,12 +1,11 @@
package com.nivesh.production.bajajfd.viewModel package com.nivesh.production.bajajfd.viewModel
import android.util.Log
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CreateFDRequest
import com.nivesh.production.bajajfd.model.FDStepsCountRequest
import com.nivesh.production.bajajfd.model.getClientDetailsRequest
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
@ -18,6 +17,7 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel()
fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch { fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch {
getStepsCountMutableData.postValue(Resource.Loading()) getStepsCountMutableData.postValue(Resource.Loading())
val response = mainRepository.getStepsCountResponse(requestBody, token) val response = mainRepository.getStepsCountResponse(requestBody, token)
Log.e("response", "-->"+response)
getStepsCountMutableData.postValue(handleRatesResponse(response)) getStepsCountMutableData.postValue(handleRatesResponse(response))
} }
@ -36,21 +36,11 @@ class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel()
getFDResponseMutableData.postValue(handleRatesResponse(response)) getFDResponseMutableData.postValue(handleRatesResponse(response))
} }
// private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
// try {
// if ( response.isSuccessful && response.body() != null) {
// response.body()?.let { resultResponse ->
// return Resource.Success(resultResponse)
// }
// }
// } catch (t: Throwable) {
// return when (t) {
// is IOException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause))
// is HttpException -> Resource.Error("Response : "+t.message.plus(" Cause: "+t.cause))
// else -> Resource.Error(t.localizedMessage?.toString() ?: "")
// }
// }
// return Resource.Error(response.message())
// }
val getFDOtherMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: SaveFDOtherDataRequest, token: String) = viewModelScope.launch {
getFDOtherMutableData.postValue(Resource.Loading())
val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token)
getFDOtherMutableData.postValue(handleRatesResponse(response))
}
} }

+ 10
- 0
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt View File

@ -1,7 +1,17 @@
package com.nivesh.production.bajajfd.viewModel package com.nivesh.production.bajajfd.viewModel
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.fragment.StepFiveBajajFDFragment
import com.nivesh.production.bajajfd.ui.fragment.StepFourBajajFDFragment
class StepFiveBajajFDViewModel (private val mainRepository: MainRepository) : ViewModel() { class StepFiveBajajFDViewModel (private val mainRepository: MainRepository) : ViewModel() {


+ 1
- 7
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt View File

@ -28,13 +28,7 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie
getFDDetailsMutableData.postValue(handleRatesResponse(response)) getFDDetailsMutableData.postValue(handleRatesResponse(response))
} }
private val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) = fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) =
viewModelScope.launch { viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading()) getRatesMutableData.postValue(Resource.Loading())


+ 2
- 20
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt View File

@ -8,30 +8,12 @@ import com.nivesh.production.bajajfd.model.DocumentUpload
import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import retrofit2.Response
class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
private fun handleRatesResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
}
private fun handleUploadResponse(response: retrofit2.Response<JsonObject>): Resource<JsonObject> {
if(response.isSuccessful){
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
}
val getTitleMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData() val getTitleMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getTitleMutableData.postValue(Resource.Loading()) getTitleMutableData.postValue(Resource.Loading())
@ -43,7 +25,7 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi
fun documentsUpload(documentUpload: DocumentUpload, token: String) = viewModelScope.launch { fun documentsUpload(documentUpload: DocumentUpload, token: String) = viewModelScope.launch {
getDocumentUploadMutableData.postValue(Resource.Loading()) getDocumentUploadMutableData.postValue(Resource.Loading())
val response = mainRepository.documentsUploadResponse(documentUpload, token) val response = mainRepository.documentsUploadResponse(documentUpload, token)
getDocumentUploadMutableData.postValue(handleUploadResponse(response))
getDocumentUploadMutableData.postValue(handleRatesResponse(response))
} }

+ 6
- 18
app/src/main/res/layout/item_customer_list_preview.xml View File

@ -1,20 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="@dimen/margin_1"
android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="2dp"
app:cardElevation="2dp"
app:cardMaxElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<LinearLayout
android:padding="@dimen/margin_1"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content">
<TextView <TextView
android:id="@+id/txtLabel" android:id="@+id/txtLabel"
@ -22,14 +11,14 @@
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:padding="@dimen/margin_2" android:padding="@dimen/margin_2"
android:layout_weight="0.87" android:layout_weight="0.87"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_12"/> android:textSize="@dimen/text_size_12"/>
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/tvCustomerName" android:id="@+id/tvCustomerName"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:padding="@dimen/margin_4" android:padding="@dimen/margin_4"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.13" android:layout_weight="0.13"
@ -37,4 +26,3 @@
android:drawablePadding="@dimen/margin_2" /> android:drawablePadding="@dimen/margin_2" />
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView>

+ 43
- 0
app/src/main/res/layout/row_fd_pay.xml View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
style="@style/BoldStyle"
android:gravity="center"
android:layout_weight="0.1"
android:layout_marginEnd="@dimen/margin_15"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/payment"
android:padding="@dimen/margin_15"
android:textSize="@dimen/text_size_18"/>
<TextView
android:id="@+id/tvCancel"
style="@style/BoldStyle"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/margin_15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/x"
android:padding="@dimen/margin_15"
android:textSize="@dimen/text_size_18"/>
</LinearLayout>
<WebView
android:layout_marginTop="@dimen/margin_5"
app:layout_constraintTop_toBottomOf="@+id/tvCancel"
android:id="@+id/wVPay"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

+ 5
- 1
app/src/main/res/values-hi-rIN/strings.xml View File

@ -237,14 +237,18 @@
<string name="nonSeniorCitizen">Non Senior Citizen</string> <string name="nonSeniorCitizen">Non Senior Citizen</string>
<string name="add_new_account">Add New Account</string> <string name="add_new_account">Add New Account</string>
<string name="ok">OK</string>
<string name="ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="aadhar">Aadhar</string> <string name="aadhar">Aadhar</string>
<string name="selectOption">Select Option</string>
<string name="gallery">Gallery</string> <string name="gallery">Gallery</string>
<string name="camera">Camera</string> <string name="camera">Camera</string>
<string name="selectOption">Select Option</string> <string name="selectOption">Select Option</string>
<string name="paymentModeCategory">PaymentMode</string> <string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string> <string name="customerCategory">CustomerCategory</string>
<string name="pay">PAY</string> <string name="pay">PAY</string>
<string name="payment">Payment</string>
<string name="validGuardianDetails">Please enter Guardian Details</string>
</resources> </resources>

+ 3
- 1
app/src/main/res/values/strings.xml View File

@ -237,7 +237,7 @@
<string name="nonSeniorCitizen">Non Senior Citizen</string> <string name="nonSeniorCitizen">Non Senior Citizen</string>
<string name="add_new_account">Add New Account</string> <string name="add_new_account">Add New Account</string>
<string name="ok">OK</string>
<string name="ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="aadhar">Aadhar</string> <string name="aadhar">Aadhar</string>
@ -247,5 +247,7 @@
<string name="paymentModeCategory">PaymentMode</string> <string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string> <string name="customerCategory">CustomerCategory</string>
<string name="pay">PAY</string> <string name="pay">PAY</string>
<string name="payment">Payment</string>
<string name="validGuardianDetails">Please enter Guardian Details</string>
</resources> </resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.