Browse Source

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

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
#	app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
#	app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt
PankajBranch
pankaj 2 years ago
parent
commit
a53e1452c4
31 changed files with 1754 additions and 1433 deletions
  1. +24
    -0
      app/src/main/java/com/nivesh/production/bajajfd/adapter/DisableAdapter.kt
  2. +4
    -8
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt
  3. +21
    -21
      app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt
  4. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  5. +4
    -3
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt
  6. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/SendData.kt
  7. +8
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXX.kt
  8. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/SaveFDOtherDataResponse.kt
  9. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  10. +136
    -188
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  11. +1
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt
  12. +15
    -0
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt
  13. +17
    -9
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
  14. +107
    -65
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  15. +132
    -134
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt
  16. +240
    -187
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  17. +602
    -587
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  18. +44
    -30
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  19. +4
    -5
      app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt
  20. +31
    -37
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  21. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFiveBajajFDViewModel.kt
  22. +57
    -31
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt
  23. +53
    -45
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt
  24. +30
    -9
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
  25. +118
    -53
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt
  26. +1
    -1
      app/src/main/res/layout/activity_bajaj_fd.xml
  27. +2
    -1
      app/src/main/res/layout/fragment_bajajfd_step_three.xml
  28. +36
    -14
      app/src/main/res/layout/fragment_bajajfd_step_two.xml
  29. +43
    -0
      app/src/main/res/layout/row_fd_pay.xml
  30. +2
    -0
      app/src/main/res/values-hi-rIN/strings.xml
  31. +2
    -0
      app/src/main/res/values/strings.xml

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

@ -0,0 +1,24 @@
package com.nivesh.production.bajajfd.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import androidx.viewpager.widget.ViewPager
class DisableAdapter (context: Context, attrs: AttributeSet) : ViewPager(context, attrs) {
private var isPagingEnabled = true // change this value for enable and disable the viewpager swipe
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent?): Boolean {
return this.isPagingEnabled && super.onTouchEvent(event)
}
override fun onInterceptTouchEvent(event: MotionEvent?): Boolean {
return this.isPagingEnabled && super.onInterceptTouchEvent(event)
}
fun setPagingEnabled(b: Boolean) { isPagingEnabled = b
}
}

+ 4
- 8
app/src/main/java/com/nivesh/production/bajajfd/adapter/SmartFragmentStatePagerAdapter.kt View File

@ -5,10 +5,12 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
import androidx.fragment.app.FragmentStatePagerAdapter
import androidx.viewpager2.adapter.FragmentStateAdapter
abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(fragmentManager) {
val registeredFragments = SparseArray<Fragment>()
abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
private val registeredFragments = SparseArray<Fragment>()
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val fragment = super.instantiateItem(container, position) as Fragment
@ -16,12 +18,6 @@ abstract class SmartFragmentStatePagerAdapter(fragmentManager: FragmentManager)
return fragment
}
// Unregister when the item is inactive
override fun destroyItem(container: View, position: Int, `object`: Any) {
registeredFragments.remove(position)
super.destroyItem(container, position, `object`)
}
// Returns the fragment for the position (if instantiated)
fun getRegisteredFragment(position: Int): Fragment? {
return registeredFragments[position]


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

@ -1,22 +1,20 @@
package com.nivesh.production.bajajfd.api
import android.content.Context
import android.net.ConnectivityManager
import com.nivesh.production.bajajfd.BajajApplication
import com.nivesh.production.bajajfd.api.ApiClient.Companion.isNetworkAvailablee
import com.nivesh.production.bajajfd.interfaces.ApiInterface
import com.nivesh.production.bajajfd.util.Constants.Companion.BASE_URL
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.Response
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.io.IOException
import java.security.KeyStore
import java.util.*
import java.util.concurrent.TimeUnit
import javax.net.ssl.*
class ApiClient {
val context = BajajApplication.appContext
companion object {
private val client by lazy {
//lazy means we only initialize this here once
@ -25,8 +23,24 @@ class ApiClient {
logging.setLevel(HttpLoggingInterceptor.Level.BODY)
//see the body of response
//create client for retrofit
val trustManagerFactory: TrustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
trustManagerFactory.init(null as KeyStore?)
val trustManagers: Array<TrustManager> = trustManagerFactory.getTrustManagers()
check(!(trustManagers.size != 1 || trustManagers[0] !is X509TrustManager)) {
"Unexpected default trust managers:" + Arrays.toString(
trustManagers
)
}
val trustManager: X509TrustManager = trustManagers[0] as X509TrustManager
val sslContext = SSLContext.getInstance("SSL")
sslContext.init(null, arrayOf(trustManager), null)
val sslSocketFactory: SSLSocketFactory = sslContext.socketFactory
val client = OkHttpClient.Builder()
.addInterceptor(ConnectVerifierInterceptor())
.addInterceptor(logging)
.sslSocketFactory(sslSocketFactory, trustManager)
.retryOnConnectionFailure(true)
.callTimeout(2, TimeUnit.MINUTES)
.connectTimeout(20, TimeUnit.SECONDS)
@ -43,24 +57,10 @@ class ApiClient {
val getApiClient: ApiInterface by lazy {
client.create(ApiInterface::class.java)
}
fun isNetworkAvailablee(): Boolean {
val connectivityManager =
BajajApplication.appContext?.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager
return connectivityManager?.activeNetworkInfo?.isConnected == true
}
}
}
class ConnectVerifierInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): okhttp3.Response {
// if (!isNetworkAvailablee()) {
// throw IOException("No Network Available!")
// }
val request = chain.request()
return chain.proceed(request)
}
}

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

@ -34,7 +34,7 @@ interface ApiInterface {
@POST("WebApi_Bajaj/api/SaveFDOtherData")
suspend fun saveFDOtherData(
@Body requestBody: RequestBody,
@Body requestBody: SaveFDOtherDataRequest,
@Header("token") token: String
): Response<JsonObject>


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

@ -1,11 +1,12 @@
package com.nivesh.production.bajajfd.interfaces
import com.nivesh.production.bajajfd.model.CreateFDApplicationResponse
import com.nivesh.production.bajajfd.model.CreateFDRequest
import com.nivesh.production.bajajfd.model.SaveFDOtherDataRequest
interface BajajFDInterface {
fun stepOneApi(data: String?)
fun stepTwoApi(data: CreateFDRequest)
fun stepThreeApi(data: CreateFDRequest)
fun stepFourApi(data: SaveFDOtherDataRequest)
fun stepTwoApi(data: CreateFDApplicationResponse)
fun stepThreeApi(data: CreateFDApplicationResponse)
fun stepFourApi( payUrl: String, value: String)
}

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

@ -3,6 +3,6 @@ package com.nivesh.production.bajajfd.interfaces
import com.nivesh.production.bajajfd.model.CreateFDApplicationResponse
interface SendData {
fun sendDataFragment(message: CreateFDApplicationResponse, currentItem: Int)
fun sendDataFragment(message: CreateFDApplicationResponse)
fun sendDataFragmentStepFour(message: CreateFDApplicationResponse)
}

+ 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
)

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

@ -29,8 +29,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
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) =
apiInterface.getFDDetails(getRatesRequest, token)


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

@ -1,14 +1,22 @@
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.os.Bundle
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.lifecycle.ViewModelProvider
import androidx.viewpager.widget.ViewPager
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.DisableAdapter
import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter
import com.nivesh.production.bajajfd.api.ApiCallback
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
@ -30,24 +38,24 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
lateinit var binding: ActivityBajajFdBinding
private lateinit var viewModel: BajajFDViewModel
lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel
lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
lateinit var stepFourBajajFDViewModel: StepFourBajajFDViewModel
lateinit var stepFiveBajajFDViewModel: StepFiveBajajFDViewModel
var createFDRequest: CreateFDRequest
var createFDApplicantRequest: CreateFDApplicationRequest
var applicantDetails: ApplicantDetails
var fdInvestmentDetails: FDInvestmentDetails
var applicantRelationDetails: ApplicantRelationDetails
var fdBankDetails: FdBankDetails
var nomineeDetails: NomineeDetails
var nomineeGuardianDetails: NomineeGuardianDetails
var getClientDetailsResponse: getClientDetailsResponse
private val stepOneBajajFDFragment = StepOneBajajFDFragment()
private val stepTwoBajajFDFragment = StepTwoBajajFDFragment()
private val stepThreeBajajFDFragment = StepThreeBajajFDFragment()
private val stepFourBajajFDFragment = StepFourBajajFDFragment()
private val stepFiveBajajFDFragment = StepFiveBajajFDFragment()
var createFDRequest: CreateFDRequest = CreateFDRequest()
var createFDApplicantRequest: CreateFDApplicationRequest = CreateFDApplicationRequest()
var applicantDetails: ApplicantDetails = ApplicantDetails()
var fdInvestmentDetails: FDInvestmentDetails = FDInvestmentDetails()
var applicantRelationDetails: ApplicantRelationDetails = ApplicantRelationDetails()
var fdBankDetails: FdBankDetails = FdBankDetails()
var nomineeDetails: NomineeDetails = NomineeDetails()
var nomineeGuardianDetails: NomineeGuardianDetails = NomineeGuardianDetails()
var getClientDetailsResponse: getClientDetailsResponse = getClientDetailsResponse()
private var stepCount: Int = 0
private lateinit var sectionsPagerAdapter : SectionsPagerAdapter
private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
private lateinit var fragments: Array<Fragment>
override fun onCreate(savedInstanceState: Bundle?) {
@ -55,19 +63,6 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
init()
}
init {
getClientDetailsResponse = getClientDetailsResponse()
createFDRequest = CreateFDRequest()
createFDApplicantRequest = CreateFDApplicationRequest()
fdInvestmentDetails = FDInvestmentDetails()
applicantDetails = ApplicantDetails()
applicantRelationDetails = ApplicantRelationDetails()
fdBankDetails = FdBankDetails()
nomineeDetails = NomineeDetails()
nomineeGuardianDetails = NomineeGuardianDetails()
}
private fun init() {
binding = ActivityBajajFdBinding.inflate(layoutInflater)
@ -78,26 +73,6 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
this,
FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[BajajFDViewModel::class.java]
stepOneBajajFDViewModel = ViewModelProvider(
this,
StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepOneBajajFDViewModel::class.java]
stepTwoBajajFDViewModel = ViewModelProvider(
this,
StepTwoModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepTwoBajajFDViewModel::class.java]
stepThreeBajajFDViewModel = ViewModelProvider(
this,
StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepThreeBajajFDViewModel::class.java]
stepFourBajajFDViewModel = ViewModelProvider(
this,
StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFourBajajFDViewModel::class.java]
stepFiveBajajFDViewModel = ViewModelProvider(
this,
StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFiveBajajFDViewModel::class.java]
if (Common.isNetworkAvailable(this)) {
getStepsCountApi()
@ -109,56 +84,54 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
}
private fun getStepsCountApi() {
if (Common.isNetworkAvailable(this)) {
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")
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.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
if (Common.isNetworkAvailable(this)) {
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872"
viewModel.getStepsCount(fdStepsCount, token, this)
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.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
}
private fun refreshToken(fdStepsCount: FDStepsCountRequest) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
}
}
@ -166,20 +139,20 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
val getClientDetailsRequest = getClientDetailsRequest()
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"
val userRequest = UserRequest()
userRequest.UID = 19060
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
val deviceInfo = DeviceInfo()
deviceInfo.device_id = ""
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_token = ""
deviceInfo.device_name = ""
@ -188,11 +161,10 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
userRequest.deviceInfo = deviceInfo
getClientDetailsRequest.UserRequest = userRequest
Log.e("getClientDetailRequest", "-->" + Gson().toJson(getClientDetailsRequest))
viewModel.getClientDetails(getClientDetailsRequest, token)
viewModel.getClientDetails(getClientDetailsRequest, token, this)
viewModel.getClientDetailsMutableData.observe(this) { response ->
when (response) {
is Resource.Success
-> {
is Resource.Success -> {
Log.e("response", "-->$response")
getClientDetailsResponse =
Gson().fromJson(
@ -220,7 +192,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
}
is Resource.Loading -> {
}is Resource.DataError -> {
}
is Resource.DataError -> {
}
}
@ -229,37 +202,32 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
}
private fun setViewPager(stepsCount: Int) {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape())
if (stepCount == 3) {
fragments = arrayOf(
StepOneBajajFDFragment.getInstance(this),
StepTwoBajajFDFragment.getInstance(this),
StepFourBajajFDFragment.getInstance(this),
StepFiveBajajFDFragment.getInstance(this)
stepOneBajajFDFragment,
stepTwoBajajFDFragment,
stepFourBajajFDFragment,
stepFiveBajajFDFragment
)
} else if (stepCount == 4) {
fragments = arrayOf(
StepOneBajajFDFragment.getInstance(this),
StepTwoBajajFDFragment.getInstance(this),
StepThreeBajajFDFragment.getInstance(this),
StepFourBajajFDFragment.getInstance(this),
StepFiveBajajFDFragment.getInstance(this)
stepOneBajajFDFragment,
stepTwoBajajFDFragment,
stepThreeBajajFDFragment,
stepFourBajajFDFragment,
stepFiveBajajFDFragment
)
}
// set viewPager
sectionsPagerAdapter =
SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
val viewPager: ViewPager = binding.viewPager
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
val viewPager: DisableAdapter = binding.viewPager
viewPager.setPagingEnabled(false)
viewPager.adapter = sectionsPagerAdapter
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int,
@ -334,8 +302,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN
checkFDKYCRequest.NiveshClientCode =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString()
stepOneBajajFDViewModel.checkFDKYC(checkFDKYCRequest, token)
stepOneBajajFDViewModel.getFDKYCMutableData.observe(this) { response ->
viewModel.checkFDKYC(checkFDKYCRequest, token, this)
viewModel.getFDKYCMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
@ -400,85 +368,65 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface {
}
// step 2 response
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")
// }
override fun stepTwoApi(data: CreateFDApplicationResponse) {
Log.e("stepTwoApi", " response ---> " + Gson().toJson(data))
binding.viewPager.currentItem = 2
stepThreeBajajFDFragment.displayReceivedData(data)
}
// step 3 response
override fun stepThreeApi(data: CreateFDRequest) {
Log.e("stepThreeApi", " response ---> $data")
override fun stepThreeApi(data: CreateFDApplicationResponse) {
Log.e("stepThreeApi", " response --->" + Gson().toJson(data))
// call create fd api
createFDApi(data, 3, "3")
binding.viewPager.currentItem = 3
stepFourBajajFDFragment.displayReceivedData(data)
}
// step 4 response
override fun stepFourApi(data: SaveFDOtherDataRequest) {
Log.e("stepFourApi", " response ---> $data")
// binding.viewPager.currentItem = 4
override fun stepFourApi(payUrl: String, value: String) {
paymentDialog(payUrl, value)
}
private fun createFDApi(data: CreateFDRequest, currentItem: Int, step: String) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
viewModel.createFDApi(data, token)
viewModel.getFDResponseMutableData.observe(this) { response ->
when (response) {
is Resource.Success -> {
Log.e("response", "-->$response")
val createFDApplicationResponse: CreateFDApplicationResponse =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
)
createFDApplicationResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.viewPager.currentItem = currentItem
if (step == "2"){
val stepThreeBajajFDFragment: StepThreeBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepThreeBajajFDFragment
stepThreeBajajFDFragment.displayReceivedData(createFDApplicationResponse)
}
else{
val stepFourFDFragment: StepFourBajajFDFragment =
sectionsPagerAdapter.getRegisteredFragment(currentItem) as StepFourBajajFDFragment
stepFourFDFragment.displayReceivedData(createFDApplicationResponse)
}
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
this@BajajFdMainActivity,
createFDApplicationResponse.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()
}
is Resource.DataError -> {
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)
}
}
}

+ 1
- 0
app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BaseActivity.kt View File

@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatActivity
open class BaseActivity : AppCompatActivity() {
private lateinit var mActivity: Activity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mActivity = this


+ 15
- 0
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/BaseFragment.kt View File

@ -7,6 +7,9 @@ import com.nivesh.production.bajajfd.ui.activity.BaseActivity
open class BaseFragment : Fragment() {
protected var mActivity: BaseActivity? = null
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is BaseActivity) {
@ -18,4 +21,16 @@ open class BaseFragment : Fragment() {
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onStart() {
super.onStart()
}
override fun onStop() {
super.onStop()
}
}

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

@ -6,32 +6,32 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepFiveModelProviderFactory
import com.nivesh.production.bajajfd.viewModel.StepFiveBajajFDViewModel
class StepFiveBajajFDFragment : Fragment() {
private lateinit var stepFourViewModel: StepFiveBajajFDViewModel
private lateinit var stepFiveBajajFDViewModel: StepFiveBajajFDViewModel
private var _binding: FragmentBajajfdStepFiveBinding? = null
private val binding get() = _binding!!
private lateinit var bajajFDInterface: BajajFDInterface
companion object {
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
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -53,6 +53,14 @@ class StepFiveBajajFDFragment : Fragment() {
return root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepFiveBajajFDViewModel = ViewModelProvider(
this,
StepFiveModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFiveBajajFDViewModel::class.java]
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null


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

@ -5,17 +5,21 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.CustomerListAdapter
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepFourModelProviderFactory
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel
@ -26,21 +30,9 @@ class StepFourBajajFDFragment : BaseFragment() {
private val binding get() = _binding!!
private lateinit var listOfCustomer: MutableList<GetCodes>
private var selectedList: String = ""
private var uniqueId: String? = ""
private lateinit var bajajFDInterface: BajajFDInterface
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepFourBajajFDFragment {
val stepThreeFragment = StepFourBajajFDFragment()
stepThreeFragment.setApi(fdInterface)
return stepThreeFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
private var uniqueId: String = ""
private var payUrl: String = ""
private var value: String = ""
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -48,9 +40,15 @@ class StepFourBajajFDFragment : BaseFragment() {
): View {
_binding = FragmentBajajfdStepFourBinding.inflate(inflater, container, false)
val root = binding.root
return binding.root
}
stepFourBajajFDViewModel = (activity as BajajFdMainActivity).stepFourBajajFDViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepFourBajajFDViewModel = ViewModelProvider(
this,
StepFourModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepFourBajajFDViewModel::class.java]
binding.checkBox.setOnCheckedChangeListener { _, _ ->
@ -75,7 +73,8 @@ class StepFourBajajFDFragment : BaseFragment() {
saveFDOtherDataRequest.Values = selectedList
saveFDOtherDataRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
bajajFDInterface.stepFourApi(saveFDOtherDataRequest)
// bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value)
saveFDOtherData(saveFDOtherDataRequest, payUrl, value)
} else {
showDialogValidation(
activity as BajajFdMainActivity,
@ -87,15 +86,53 @@ class StepFourBajajFDFragment : BaseFragment() {
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
}
return root
}
private fun saveFDOtherData(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
stepFourBajajFDViewModel.saveFDOtherData(data, token, activity as BajajFdMainActivity)
stepFourBajajFDViewModel.getFDOtherMutableData.observe(viewLifecycleOwner) { 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 -> {
(activity as BajajFdMainActivity).stepFourApi(payUrl, value)
// paymentDialog(payUrl, value)
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
activity as BajajFdMainActivity,
saveFDOtherDataResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
Log.e(
"createFDApplication",
"Response-->" + createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
)
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
getFDDetailsApi(createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId)
customerListApi()
@ -103,53 +140,55 @@ class StepFourBajajFDFragment : BaseFragment() {
private fun customerListApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.customerCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token)
stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { 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 -> {
if (getCodeResponse.Response.GetCodesList.isNotEmpty()) {
listOfCustomer = getCodeResponse.Response.GetCodesList
setUpRecyclerView(listOfCustomer)
}
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Message
)
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.customerCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepFourBajajFDViewModel.paymentModeApi(
getCodeRequest,
Constants.token,
activity as BajajFdMainActivity
)
stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { 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 -> {
if (getCodeResponse.Response.GetCodesList.isNotEmpty()) {
listOfCustomer = getCodeResponse.Response.GetCodesList
setUpRecyclerView(listOfCustomer)
}
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Message
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(activity as BajajFdMainActivity, message)
}
is Resource.Error -> {
response.message?.let { message ->
showDialogValidation(activity as BajajFdMainActivity, message)
}
is Resource.Loading -> {
}
is Resource.Loading -> {
}is Resource.DataError -> {
}
is Resource.DataError -> {
}
}
}
}
}
private fun setUpRecyclerView(getCustomerList: MutableList<GetCodes>) {
@ -158,8 +197,6 @@ class StepFourBajajFDFragment : BaseFragment() {
val customerListAdapter = CustomerListAdapter(getCustomerList)
binding.rvTerms.adapter = customerListAdapter
}
private fun getFDDetailsApi(uniqueId: String) {
@ -169,7 +206,11 @@ class StepFourBajajFDFragment : BaseFragment() {
getFDDetailsRequest.NiveshClientCode =
(mActivity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
getFDDetailsRequest.UniqueId = uniqueId
stepFourBajajFDViewModel.getFDDetails(getFDDetailsRequest, Constants.token)
stepFourBajajFDViewModel.getFDDetails(
getFDDetailsRequest,
Constants.token,
activity as BajajFdMainActivity
)
stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
@ -192,12 +233,14 @@ class StepFourBajajFDFragment : BaseFragment() {
binding.tvRateOfInterest.text =
getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString()
.plus(" % p.a.")
payUrl = getFDDetailsResponse.Response.FDDataResponse.PaymentUrl
value = getFDDetailsResponse.Response.FDDataResponse.Value
}
// 650 -> refreshToken()
else -> {
showDialogValidation(
activity as BajajFdMainActivity,
getFDDetailsResponse.Response.Message
getFDDetailsResponse.Response.Errors[0].ErrorMessage
)
}
}
@ -212,7 +255,6 @@ class StepFourBajajFDFragment : BaseFragment() {
is Resource.Loading -> {
}
is Resource.DataError -> {
}


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

@ -12,17 +12,19 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.RadioButton
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView.LayoutManager
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.adapter.HorizontalRecyclerViewAdapter
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepOneBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepOneModelProviderFactory
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.commonErrorMethod
import com.nivesh.production.bajajfd.util.Common.Companion.removeError
@ -35,7 +37,6 @@ class StepOneBajajFDFragment : BaseFragment() {
private var _binding: FragmentBajajfdStepOneBinding? = null
private val binding get() = _binding!!
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepOneBajajFDViewModel: StepOneBajajFDViewModel
private lateinit var rgMaturity: RadioButton
private lateinit var listOfTenure: MutableList<ROIDataList>
@ -47,25 +48,19 @@ class StepOneBajajFDFragment : BaseFragment() {
private var tenure: Int = 0
private var interest: Double = 0.0
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepOneBajajFDFragment {
val stepStartFragment = StepOneBajajFDFragment()
stepStartFragment.setApi(fdInterface)
return stepStartFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
_binding = FragmentBajajfdStepOneBinding.inflate(inflater, container, false)
val root = binding.root
return binding.root
}
stepOneBajajFDViewModel = (activity as BajajFdMainActivity).stepOneBajajFDViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepOneBajajFDViewModel = ViewModelProvider(
this,
StepOneModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepOneBajajFDViewModel::class.java]
listOfTenure = ArrayList()
binding.edtAmount.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(8)) // upto 1 Cr
@ -160,16 +155,21 @@ class StepOneBajajFDFragment : BaseFragment() {
(activity as BajajFdMainActivity).fdInvestmentDetails.CustomerType = ""
(activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = ""
(activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as BajajFdMainActivity).fdInvestmentDetails
Log.e("Maturity", "-->" + rgMaturity.text)
bajajFDInterface.stepOneApi("stepOneResponse")
(activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails =
(activity as BajajFdMainActivity).fdInvestmentDetails
Log.e(
"StepOneData",
"-->" + Gson().toJson((activity as BajajFdMainActivity).fdInvestmentDetails)
)
// bajajFDInterface.stepOneApi("stepOneResponse")
(activity as BajajFdMainActivity).stepOneApi("stepOneResponse")
}
}
minAmountApi()
interestPayoutApi()
return root
}
private fun interestPayoutApi() {
@ -178,7 +178,7 @@ class StepOneBajajFDFragment : BaseFragment() {
getCodeRequest.Category = getString(R.string.category)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepOneBajajFDViewModel.getCode(getCodeRequest, token)
stepOneBajajFDViewModel.getCode(getCodeRequest, token, activity as BajajFdMainActivity)
stepOneBajajFDViewModel.getCodeMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
@ -223,10 +223,10 @@ class StepOneBajajFDFragment : BaseFragment() {
}
is Resource.Loading -> {
}is Resource.DataError -> {
}
is Resource.DataError -> {
}
}
}
}
@ -237,7 +237,7 @@ class StepOneBajajFDFragment : BaseFragment() {
getCodeRequest.Category = getString(R.string.minAmountCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepOneBajajFDViewModel.getMinAmount(getCodeRequest, token)
stepOneBajajFDViewModel.getMinAmount(getCodeRequest, token, activity as BajajFdMainActivity)
stepOneBajajFDViewModel.getMinAmountMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
@ -274,7 +274,6 @@ class StepOneBajajFDFragment : BaseFragment() {
is Resource.Loading -> {
}
is Resource.DataError -> {
}
@ -288,7 +287,7 @@ class StepOneBajajFDFragment : BaseFragment() {
getCodeRequest.Category = getString(R.string.MaxAmountCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepOneBajajFDViewModel.getMaxAmount(getCodeRequest, token)
stepOneBajajFDViewModel.getMaxAmount(getCodeRequest, token, activity as BajajFdMainActivity)
stepOneBajajFDViewModel.getMaxAmountMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
@ -322,8 +321,6 @@ class StepOneBajajFDFragment : BaseFragment() {
is Resource.DataError -> {
}
}
}
}
@ -348,54 +345,58 @@ class StepOneBajajFDFragment : BaseFragment() {
}
private fun maturityAmountApi(tenure: Int, interest: Double) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0) {
val maturityAmountRequest = GetMaturityAmountRequest()
maturityAmountRequest.FDProvider = getString(R.string.bajaj)
maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt()
maturityAmountRequest.Frequency = binding.spInterestPayout.text.toString()
maturityAmountRequest.Tenure = tenure
maturityAmountRequest.Interest = interest
stepOneBajajFDViewModel.getMaturityAmount(maturityAmountRequest)
stepOneBajajFDViewModel.getMaturityAmountMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getMaturityAmountResponse =
Gson().fromJson(
response.data?.toString(),
GetCalculateMaturityAmountResponse::class.java
)
getMaturityAmountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.tvMaturityAmount.text =
getString(R.string.rs).plus(" ").plus(
getMaturityAmountResponse.Response.MaturityAmount.toString()
)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getMaturityAmountResponse.Response.Errors[0].ErrorMessage
if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0 && binding.spInterestPayout.text.toString()
.isNotEmpty()
) {
val maturityAmountRequest = GetMaturityAmountRequest()
maturityAmountRequest.FDProvider = getString(R.string.bajaj)
maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt()
maturityAmountRequest.Frequency = binding.spInterestPayout.text.toString()
maturityAmountRequest.Tenure = tenure
maturityAmountRequest.Interest = interest
stepOneBajajFDViewModel.getMaturityAmount(
maturityAmountRequest,
activity as BajajFdMainActivity
)
stepOneBajajFDViewModel.getMaturityAmountMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getMaturityAmountResponse =
Gson().fromJson(
response.data?.toString(),
GetCalculateMaturityAmountResponse::class.java
)
getMaturityAmountResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
binding.tvMaturityAmount.text =
getString(R.string.rs).plus(" ").plus(
getMaturityAmountResponse.Response.MaturityAmount.toString()
)
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getMaturityAmountResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(
activity as BajajFdMainActivity,
message
)
}
}
is Resource.Loading -> {
is Resource.DataError -> {
}
}
is Resource.DataError -> {
}
}
@ -444,81 +445,78 @@ class StepOneBajajFDFragment : BaseFragment() {
}
private fun getRatesApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getRatesRequest = GetRatesRequest()
getRatesRequest.fdProvider = getString(R.string.bajaj)
getRatesRequest.frequency = binding.spInterestPayout.text.toString()
if (binding.swSeniorCitizen.isChecked) {
getRatesRequest.type = getString(R.string.seniorCitizen)
} else {
getRatesRequest.type = getString(R.string.nonSeniorCitizen)
}
stepOneBajajFDViewModel.getRates(getRatesRequest, token)
stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getRatesResponse: GetRatesResponse =
Gson().fromJson(response.data?.toString(), GetRatesResponse::class.java)
getRatesResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
if (listOfTenure.isNotEmpty()) {
listOfTenure.clear()
}
listOfTenure = getRatesResponse.Response.ROIDatalist
// Tenure
if (listOfTenure.isNotEmpty()) {
listOfTenure.sortWith { lhs: ROIDataList, rhs: ROIDataList ->
rhs.Tenure.compareTo(
lhs.Tenure
)
}
binding.ORLayout.visibility = View.VISIBLE
val tenureAdapter =
ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfTenure
)
binding.spTenure.setAdapter(tenureAdapter)
binding.spTenure.setText(
tenureAdapter.getItem(0)?.Tenure.plus(
" Months | "
).plus(tenureAdapter.getItem(0)?.ROI).plus(" %"), false
val getRatesRequest = GetRatesRequest()
getRatesRequest.fdProvider = getString(R.string.bajaj)
getRatesRequest.frequency = binding.spInterestPayout.text.toString()
if (binding.swSeniorCitizen.isChecked) {
getRatesRequest.type = getString(R.string.seniorCitizen)
} else {
getRatesRequest.type = getString(R.string.nonSeniorCitizen)
}
stepOneBajajFDViewModel.getRates(getRatesRequest, token, activity as BajajFdMainActivity)
stepOneBajajFDViewModel.getRatesMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getRatesResponse: GetRatesResponse =
Gson().fromJson(response.data?.toString(), GetRatesResponse::class.java)
getRatesResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
if (listOfTenure.isNotEmpty()) {
listOfTenure.clear()
}
listOfTenure = getRatesResponse.Response.ROIDatalist
// Tenure
if (listOfTenure.isNotEmpty()) {
listOfTenure.sortWith { lhs: ROIDataList, rhs: ROIDataList ->
rhs.Tenure.compareTo(
lhs.Tenure
)
tenure = tenureAdapter.getItem(0)?.Tenure.toString().toInt()
interest = tenureAdapter.getItem(0)?.ROI ?: 0.0
binding.tvROI.text =
tenureAdapter.getItem(0)?.ROI.toString().plus(" %")
setUpRecyclerView()
} else {
binding.ORLayout.visibility = View.GONE
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getRatesResponse.Response.Errors[0].ErrorMessage
binding.ORLayout.visibility = View.VISIBLE
val tenureAdapter =
ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfTenure
)
binding.spTenure.setAdapter(tenureAdapter)
binding.spTenure.setText(
tenureAdapter.getItem(0)?.Tenure.plus(
" Months | "
).plus(tenureAdapter.getItem(0)?.ROI).plus(" %"), false
)
tenure = tenureAdapter.getItem(0)?.Tenure.toString().toInt()
interest = tenureAdapter.getItem(0)?.ROI ?: 0.0
binding.tvROI.text =
tenureAdapter.getItem(0)?.ROI.toString().plus(" %")
setUpRecyclerView()
} else {
binding.ORLayout.visibility = View.GONE
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getRatesResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
is Resource.DataError -> {
}
is Resource.DataError -> {
}
}
}
}


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

@ -6,36 +6,30 @@ import android.app.ActionBar.LayoutParams
import android.app.Dialog
import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.provider.OpenableColumns
import android.text.Editable
import android.util.Base64
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import android.widget.*
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson
import com.nivesh.production.bajajfd.BuildConfig
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.api.ApiClient
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
@ -52,39 +46,19 @@ class StepThreeBajajFDFragment : BaseFragment() {
private val binding get() = _binding!!
private lateinit var listOfDocType: List<GetCodes>
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private var uniqueId: String? = ""
private lateinit var dialog: Dialog
private var front: String = ""
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment {
val stepTwoFragment = StepThreeBajajFDFragment()
stepTwoFragment.setApi(fdInterface)
return stepTwoFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
private val selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri ->
val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
binding.iv.setImageBitmap(bitmap)
}
private lateinit var dialog: Dialog
private var takeImageResult: ActivityResultLauncher<Uri>? = null
private var selectImageIntent: ActivityResultLauncher<String>? = null
private val mapImage: HashMap<String, String> = HashMap()
private val takeImageResult =
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) {
latestTmpUri?.let { uri ->
// binding.iv.setImageURI(uri)
uploadDocument(uri)
}
}
}
private var front: String = ""
private var fileExt: String? = ""
private var uniqueId: String? = ""
private var selectedImage: String? = ""
private var checkPANUploadFile: Boolean? = false
private var checkPhotoUploadFile: Boolean? = false
private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
@ -103,22 +77,71 @@ class StepThreeBajajFDFragment : BaseFragment() {
): View {
_binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false)
val root = binding.root
stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stepThreeBajajFDViewModel = ViewModelProvider(
this,
StepThreeModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[StepThreeBajajFDViewModel::class.java]
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? ->
if (uri != null) {
uploadDocument(uri)
}
}
takeImageResult =
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) {
latestTmpUri?.let { uri ->
uploadDocument(uri)
}
}
}
binding.btnNext.setOnClickListener {
if (validate()) {
// uploadDocApi()
//
bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
var uploadPosition = 0
for (entry in mapImage.iterator()) {
uploadPosition++
if (entry.key.contains("Main ")) {
uploadDocApi(entry.key.replace("Main ", ""), entry.value, uploadPosition)
} else {
uploadDocApi(entry.key, entry.value, uploadPosition)
}
}
}
}
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 1
}
binding.btnPANUpload.setOnClickListener {
checkPANUploadFile = true
checkPhotoUploadFile = false
selectImage("PAN")
}
binding.btnPhotoUpload.setOnClickListener {
checkPhotoUploadFile = true
checkPANUploadFile = false
selectImage("Photograph")
}
binding.btnAadhaarFrontUpload.setOnClickListener {
selectImage()
checkPANUploadFile = false
checkPhotoUploadFile = false
selectImage(binding.spDocType.text.toString())
}
binding.btnAadhaarBackUpload.setOnClickListener {
checkPANUploadFile = false
checkPhotoUploadFile = false
selectImage(binding.spDocType.text.toString())
}
binding.spDocType.onItemClickListener =
@ -135,26 +158,23 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
docTypeApi()
return root
}
@SuppressLint("Range")
fun getFileName(uri: Uri): String {
var result: String? = null
var result = ""
if (uri.scheme == "content") {
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) {
result = result.substring(cut + 1)
}
@ -162,7 +182,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
return result
}
private fun selectImage() {
private fun selectImage(fileType: String) {
selectedImage = fileType
dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
@ -175,55 +196,31 @@ class StepThreeBajajFDFragment : BaseFragment() {
tvGallery.setOnClickListener {
dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
)
if (permission == PackageManager.PERMISSION_GRANTED) {
selectImageIntent?.launch("image/*")
} else {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED -> {
selectImageIntent.launch("image/*")
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
) -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
else -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
)
}
}
tvCamera.setOnClickListener {
dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
)
if (permission == PackageManager.PERMISSION_GRANTED) {
takeImage()
} else {
requestPermission.launch(
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED -> {
takeImage()
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
else -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
)
}
}
@ -231,13 +228,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
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) {
binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
@ -258,16 +248,14 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
private fun uploadDocument(uri: Uri) {
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)))
var file_path: File? = uri.path?.let { File(it) }
encodedFileToBase64(file_ex)
Log.e("check_data_front", value.toString()+"\n"+front)
// documentUpload.DocumentType =
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
fileExt = fileExtension.extension
encodedFileToBase64(fileExtension)
if (checkPANUploadFile == true || checkPhotoUploadFile == true) {
mapImage["Main ".plus(selectedImage)] = front
} else {
selectedImage?.let { mapImage.put(it, front) }
}
}
@ -283,7 +271,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
@Throws(IOException::class)
private fun loadFile(file: File): ByteArray? {
private fun loadFile(file: File): ByteArray {
val inputStream: InputStream = FileInputStream(file)
val length = file.length()
val bytes = ByteArray(length.toInt())
@ -301,94 +289,95 @@ class StepThreeBajajFDFragment : BaseFragment() {
return bytes
}
private fun uploadDocApi(){
if(Common.isNetworkAvailable((activity as BajajFdMainActivity))){
val du = DocumentUpload()
du.Description = "PAN"
du.DocumentType = "PAN"
du.FDProvider = getString(R.string.bajaj)
du.ImageEncodeToBase64 = front //"data:image/png;base64"
du.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
du.UniqueId = uniqueId
stepThreeBajajFDViewModel.documentsUpload(du,Constants.token)
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner){ response ->
when (response){
is Resource.Success ->{
Log.e("response", "-->$response")
val getUploadResponse: UploadResponse =
Gson().fromJson(response.data?.toString(),UploadResponse::class.java)
getUploadResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
Log.e("check_upload_res",response.message.toString())
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getUploadResponse.Response.Message
)
private fun uploadDocApi(key: String, imageBase64: String, uploadPosition: Int) {
val du = DocumentUpload()
du.Description = key
du.DocumentType = key
du.FDProvider = getString(R.string.bajaj)
du.ImageEncodeToBase64 =
"data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64"
du.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
du.UniqueId = uniqueId
stepThreeBajajFDViewModel.documentsUpload(
du,
Constants.token,
activity as BajajFdMainActivity
)
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("UploadImage", "Response-->" + response.data.toString())
val getUploadResponse: UploadResponse =
Gson().fromJson(response.data?.toString(), UploadResponse::class.java)
getUploadResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
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()
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
createFDApi((activity as BajajFdMainActivity).createFDRequest)
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getUploadResponse.Response.Message
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
is Resource.DataError -> {
}
}
is Resource.DataError -> {
}
}
}
}
private fun docTypeApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.docType)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepThreeBajajFDViewModel.titleApi(getCodeRequest, Constants.token)
stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { response ->
private fun createFDApi(data: CreateFDRequest) {
stepThreeBajajFDViewModel.createFDApi(
data,
Constants.token,
activity as BajajFdMainActivity
)
stepThreeBajajFDViewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { 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 ->
Log.e("createFDApi", "response--> " + response.data.toString())
val createFDApplicationResponse: CreateFDApplicationResponse =
Gson().fromJson(
response.data?.toString(),
CreateFDApplicationResponse::class.java
)
createFDApplicationResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
listOfDocType = getCodeResponse.Response.GetCodesList
if (listOfDocType.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfDocType
)
binding.spDocType.setAdapter(adapter)
binding.spDocType.setText(
adapter.getItem(0)?.Value,
false
)
setOtherUploadLayout(listOfDocType[0].Value)
}
(activity as BajajFdMainActivity).stepThreeApi(
createFDApplicationResponse
)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Message
createFDApplicationResponse.Response.Errors[0].ErrorMessage
)
}
}
@ -408,6 +397,69 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
}
}
}
private fun docTypeApi() {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.docType)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepThreeBajajFDViewModel.titleApi(
getCodeRequest,
Constants.token,
activity as BajajFdMainActivity
)
stepThreeBajajFDViewModel.getTitleMutableData.observe(viewLifecycleOwner) { 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 -> {
listOfDocType = getCodeResponse.Response.GetCodesList
if (listOfDocType.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfDocType
)
binding.spDocType.setAdapter(adapter)
binding.spDocType.setText(
adapter.getItem(0)?.Value,
false
)
setOtherUploadLayout(listOfDocType[0].Value)
}
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getCodeResponse.Response.Message
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
@ -420,7 +472,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
lifecycleScope.launchWhenStarted {
getTmpFileUri().let { uri ->
latestTmpUri = uri
takeImageResult.launch(uri)
takeImageResult?.launch(uri)
}
}
}
@ -446,6 +498,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
}
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
}
}

+ 602
- 587
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
File diff suppressed because it is too large
View File


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

@ -3,25 +3,22 @@ package com.nivesh.production.bajajfd.util
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.net.Uri
import android.os.Build
import android.provider.ContactsContract
import android.text.format.DateFormat
import android.util.Patterns
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.BajajApplication
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.ui.activity.BaseActivity
import kotlinx.coroutines.CoroutineExceptionHandler
import retrofit2.HttpException
import java.io.IOException
import java.net.SocketTimeoutException
import java.text.SimpleDateFormat
import java.util.*
import java.util.regex.Matcher
@ -31,8 +28,6 @@ import java.util.regex.Pattern
class Common {
companion object {
/**
*Before use this method write following code in model class
app:Application(in activity and model)
@ -40,7 +35,7 @@ class Common {
val connectivityManager = getApplication<NewsApplication>().getSystemService(....
**/
//internet check
fun isNetworkAvailable(activity: BaseActivity): Boolean {
fun isNetworkAvailable(activity: Activity): Boolean {
val connectivityManager = activity.getSystemService(
Context.CONNECTIVITY_SERVICE
) as ConnectivityManager
@ -70,9 +65,6 @@ class Common {
return false
}
//valid email check
fun isValidEmail(target: String?): Boolean {
return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches()
@ -194,30 +186,52 @@ class Common {
return simpleDateFormat.format(mDate as Date)
}
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))
is SocketTimeoutException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
else -> Resource.Error(t.localizedMessage?.toString() ?: "")
fun handleResponse(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))
// is SocketTimeoutException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
// is UnknownHostException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause))
// else -> Resource.Error(t.localizedMessage?.toString() ?: "")
// }
// }
return Resource.Error(response.message())
}
fun handleError(activity: Activity): CoroutineExceptionHandler {
val handler = CoroutineExceptionHandler { _, exception ->
if (exception is IOException || exception is HttpException) {
showDialogValidation(
activity,
"Response : ".plus(exception.message).plus(" Cause: ").plus(exception.cause)
)
} else {
showDialogValidation(
activity,
"Response : ".plus(exception.localizedMessage?.toString())
)
}
}
return handler
}
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)
}
}
}

+ 4
- 5
app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt View File

@ -1,9 +1,8 @@
package com.nivesh.production.bajajfd.util
sealed class Resource<T>(
val data:T?=null,
var message:String?=null,
val data: T? = null,
var message: String? = null,
val errorCode: Int? = null,
var status: Boolean = true
@ -11,7 +10,8 @@ sealed class Resource<T>(
class Success<T>(data: T) : Resource<T>(data)
class Error<T>(message: String, data: T? = null) : Resource<T>(data, message)
class Loading<T> : Resource<T>()
class DataError<T>(errorCode: Int,message: String, data: T? = null) : Resource<T>(null, message,errorCode)
class DataError<T>(errorCode: Int, message: String, data: T? = null) :
Resource<T>(null, message, errorCode)
override fun toString(): String {
@ -23,5 +23,4 @@ sealed class Resource<T>(
}
}
}

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

@ -1,58 +1,52 @@
package com.nivesh.production.bajajfd.viewModel
import android.util.Log
import android.app.Activity
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
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.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleError
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
val getStepsCountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getStepsCount(requestBody: FDStepsCountRequest, token: String) = viewModelScope.launch {
getStepsCountMutableData.postValue(Resource.Loading())
val response = mainRepository.getStepsCountResponse(requestBody, token)
Log.e("response", "-->"+response)
getStepsCountMutableData.postValue(handleRatesResponse(response))
fun getStepsCount(
requestBody: FDStepsCountRequest,
token: String,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getStepsCountMutableData.postValue(Resource.Loading())
val response = mainRepository.getStepsCountResponse(requestBody, token)
getStepsCountMutableData.postValue(handleResponse(response))
}
}
val getClientDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String) =
viewModelScope.launch {
getClientDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getClientDetailsResponse(getClientDetailsRequest, token)
getClientDetailsMutableData.postValue(handleRatesResponse(response))
fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String, activity: Activity) =
viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getClientDetailsMutableData.postValue(Resource.Loading())
val response =
mainRepository.getClientDetailsResponse(getClientDetailsRequest, token)
getClientDetailsMutableData.postValue(handleResponse(response))
}
}
val getFDResponseMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun createFDApi(getRatesRequest: CreateFDRequest, token: String) = viewModelScope.launch {
getFDResponseMutableData.postValue(Resource.Loading())
val response = mainRepository.createFDKYCResponse(getRatesRequest, token)
getFDResponseMutableData.postValue(handleRatesResponse(response))
val getFDKYCMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getFDKYCMutableData.postValue(Resource.Loading())
val response = mainRepository.checkFDKYCRequest(requestBody, token)
getFDKYCMutableData.postValue(handleResponse(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())
// }
}

+ 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
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
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.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() {


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

@ -1,5 +1,6 @@
package com.nivesh.production.bajajfd.viewModel
import android.app.Activity
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -7,56 +8,81 @@ import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetFDDetailsRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.model.SaveFDOtherDataRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getPaymentModeMutableData.postValue(Resource.Loading())
val response = mainRepository.payModeCheck(getCodeRequest, token)
getPaymentModeMutableData.postValue(handleRatesResponse(response))
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,
activity: Activity
) = viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getPaymentModeMutableData.postValue(Resource.Loading())
val response = mainRepository.payModeCheck(getCodeRequest, token)
getPaymentModeMutableData.postValue(handleResponse(response))
}
}
val getFDDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String) = viewModelScope.launch {
getFDDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getFDDetailsResponse(getRatesRequest, token)
getFDDetailsMutableData.postValue(handleRatesResponse(response))
fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String,
activity: Activity) = viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getFDDetailsMutableData.postValue(Resource.Loading())
val response = mainRepository.getFDDetailsResponse(getRatesRequest, token)
getFDDetailsMutableData.postValue(handleResponse(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,
activity: Activity) =
viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
}
}
fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String) =
viewModelScope.launch {
fun finaliseFD(getRatesRequest: GetRatesRequest, token: String,
activity: Activity) = viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
val response = mainRepository.finaliseFDResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
}
}
fun finaliseFD(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseFDResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String,
activity: Activity) = viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseKYCResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
}
}
fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseKYCResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
fun paymentReQuery(getRatesRequest: GetRatesRequest, token: String,
activity: Activity) = viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.paymentReQueryResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
}
}
fun paymentReQuery(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.paymentReQueryResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
val getFDOtherMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun saveFDOtherData(getRatesRequest: SaveFDOtherDataRequest, token: String,
activity: Activity) = viewModelScope.launch(Common.handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getFDOtherMutableData.postValue(Resource.Loading())
val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token)
getFDOtherMutableData.postValue(handleResponse(response))
}
}
}

+ 53
- 45
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt View File

@ -1,15 +1,16 @@
package com.nivesh.production.bajajfd.viewModel
import android.app.Activity
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CheckFDKYCRequest
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetMaturityAmountRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
@ -17,55 +18,62 @@ import kotlinx.coroutines.launch
class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
val getCodeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getCode(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getCodeMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getCodeMutableData.postValue(handleRatesResponse(response))
}
fun getCode(requestBody: GetCodeRequest, token: String, activity: Activity) =
viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getCodeMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getCodeMutableData.postValue(handleResponse(response))
}
}
val getRatesMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getRates(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.getRatesResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleRatesResponse(response))
}
fun getRates(getRatesRequest: GetRatesRequest, token: String, activity: Activity) =
viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.getRatesResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
}
}
val getMaturityAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getMaturityAmount(requestBody: GetMaturityAmountRequest) = viewModelScope.launch {
getMaturityAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token)
getMaturityAmountMutableData.postValue(handleRatesResponse(response))
}
fun getMaturityAmount(requestBody: GetMaturityAmountRequest, activity: Activity) =
viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getMaturityAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token)
getMaturityAmountMutableData.postValue(handleResponse(response))
}
}
val getMinAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getMinAmount(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getMinAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getMinAmountMutableData.postValue(handleRatesResponse(response))
}
fun getMinAmount(requestBody: GetCodeRequest, token: String, activity: Activity) =
viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getMinAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getMinAmountMutableData.postValue(handleResponse(response))
}
}
val getMaxAmountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun getMaxAmount(requestBody: GetCodeRequest, token : String) = viewModelScope.launch {
getMaxAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getMaxAmountMutableData.postValue(handleRatesResponse(response))
}
val getFDKYCMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String) = viewModelScope.launch {
getFDKYCMutableData.postValue(Resource.Loading())
val response = mainRepository.checkFDKYCRequest(requestBody, token)
getFDKYCMutableData.postValue(handleRatesResponse(response))
}
// 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())
//
// }
fun getMaxAmount(requestBody: GetCodeRequest, token: String, activity: Activity) =
viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getMaxAmountMutableData.postValue(Resource.Loading())
val response = mainRepository.getCodesResponse(requestBody, token)
getMaxAmountMutableData.postValue(handleResponse(response))
}
}
}

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

@ -1,32 +1,53 @@
package com.nivesh.production.bajajfd.viewModel
import android.app.Activity
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.CreateFDRequest
import com.nivesh.production.bajajfd.model.DocumentUpload
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
val getTitleMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getTitleMutableData.postValue(Resource.Loading())
val response = mainRepository.titleCheck(getCodeRequest, token)
getTitleMutableData.postValue(handleRatesResponse(response))
fun titleApi(getCodeRequest: GetCodeRequest, token: String, activity: Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getTitleMutableData.postValue(Resource.Loading())
val response = mainRepository.titleCheck(getCodeRequest, token)
getTitleMutableData.postValue(handleResponse(response))
}
}
val getDocumentUploadMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun documentsUpload(documentUpload: DocumentUpload, token: String) = viewModelScope.launch {
getDocumentUploadMutableData.postValue(Resource.Loading())
val response = mainRepository.documentsUploadResponse(documentUpload, token)
getDocumentUploadMutableData.postValue(handleRatesResponse(response))
fun documentsUpload(documentUpload: DocumentUpload, token: String, activity: Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getDocumentUploadMutableData.postValue(Resource.Loading())
val response = mainRepository.documentsUploadResponse(documentUpload, token)
getDocumentUploadMutableData.postValue(handleResponse(response))
}
}
val getFDResponseMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun createFDApi(getRatesRequest: CreateFDRequest, token: String, activity: Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getFDResponseMutableData.postValue(Resource.Loading())
val response = mainRepository.createFDKYCResponse(getRatesRequest, token)
getFDResponseMutableData.postValue(handleResponse(response))
}
}
}

+ 118
- 53
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt View File

@ -1,107 +1,172 @@
package com.nivesh.production.bajajfd.viewModel
import android.app.Activity
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common.Companion.handleRatesResponse
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() {
val getPanCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun panCheck(panCheck: PanCheckRequest, token: String) = viewModelScope.launch {
getPanCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.panCheck(panCheck, token)
getPanCheckMutableData.postValue(handleRatesResponse(response))
fun panCheck(panCheck: PanCheckRequest, token: String, activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getPanCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.panCheck(panCheck, token)
getPanCheckMutableData.postValue(handleResponse(response))
}
}
val getTitleMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getTitleMutableData.postValue(Resource.Loading())
val response = mainRepository.titleCheck(getCodeRequest, token)
getTitleMutableData.postValue(handleRatesResponse(response))
fun titleApi(getCodeRequest: GetCodeRequest, token: String, activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getTitleMutableData.postValue(Resource.Loading())
val response = mainRepository.titleCheck(getCodeRequest, token)
getTitleMutableData.postValue(handleResponse(response))
}
}
val getGenderMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun genderApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getGenderMutableData.postValue(Resource.Loading())
val response = mainRepository.genderCheck(getCodeRequest, token)
getGenderMutableData.postValue(handleRatesResponse(response))
fun genderApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getGenderMutableData.postValue(Resource.Loading())
val response = mainRepository.genderCheck(getCodeRequest, token)
getGenderMutableData.postValue(handleResponse(response))
}
}
val getAnnualIncomeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun annualIncomeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getAnnualIncomeMutableData.postValue(Resource.Loading())
val response = mainRepository.annualIncomeCheck(getCodeRequest, token)
getAnnualIncomeMutableData.postValue(handleRatesResponse(response))
fun annualIncomeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getAnnualIncomeMutableData.postValue(Resource.Loading())
val response = mainRepository.annualIncomeCheck(getCodeRequest, token)
getAnnualIncomeMutableData.postValue(handleResponse(response))
}
}
val getRelationShipMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun relationShipApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getRelationShipMutableData.postValue(Resource.Loading())
val response = mainRepository.relationShipCheck(getCodeRequest, token)
getRelationShipMutableData.postValue(handleRatesResponse(response))
fun relationShipApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getRelationShipMutableData.postValue(Resource.Loading())
val response = mainRepository.relationShipCheck(getCodeRequest, token)
getRelationShipMutableData.postValue(handleResponse(response))
}
}
val getMaritalStatusMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun maritalStatusApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getMaritalStatusMutableData.postValue(Resource.Loading())
val response = mainRepository.maritalStatusCheck(getCodeRequest, token)
getMaritalStatusMutableData.postValue(handleRatesResponse(response))
fun maritalStatusApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getMaritalStatusMutableData.postValue(Resource.Loading())
val response = mainRepository.maritalStatusCheck(getCodeRequest, token)
getMaritalStatusMutableData.postValue(handleResponse(response))
}
}
val getOccupationMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun occupationApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getOccupationMutableData.postValue(Resource.Loading())
val response = mainRepository.occupationCheck(getCodeRequest, token)
getOccupationMutableData.postValue(handleRatesResponse(response))
fun occupationApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getOccupationMutableData.postValue(Resource.Loading())
val response = mainRepository.occupationCheck(getCodeRequest, token)
getOccupationMutableData.postValue(handleResponse(response))
}
}
val getStateMasterMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun stateApi(token: String) = viewModelScope.launch {
getStateMasterMutableData.postValue(Resource.Loading())
val response = mainRepository.stateCheck( token)
getStateMasterMutableData.postValue(handleRatesResponse(response))
fun stateApi(token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getStateMasterMutableData.postValue(Resource.Loading())
val response = mainRepository.stateCheck(token)
getStateMasterMutableData.postValue(handleResponse(response))
}
}
val getCityListMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun cityListApi(cityRequest: CityRequest, token: String) = viewModelScope.launch {
getCityListMutableData.postValue(Resource.Loading())
val response = mainRepository.cityCheck(cityRequest, token)
getCityListMutableData.postValue(handleRatesResponse(response))
fun cityListApi(cityRequest: CityRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getCityListMutableData.postValue(Resource.Loading())
val response = mainRepository.cityCheck(cityRequest, token)
getCityListMutableData.postValue(handleResponse(response))
}
}
val getFDBankListMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun bankListApi( token: String) = viewModelScope.launch {
getFDBankListMutableData.postValue(Resource.Loading())
val response = mainRepository.bankListCheck( token)
getFDBankListMutableData.postValue(handleRatesResponse(response))
fun bankListApi( token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getFDBankListMutableData.postValue(Resource.Loading())
val response = mainRepository.bankListCheck(token)
getFDBankListMutableData.postValue(handleResponse(response))
}
}
val getifscCodeCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeApi(ifsc : String) = viewModelScope.launch {
getifscCodeCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeCheck(ifsc)
getifscCodeCheckMutableData.postValue(handleRatesResponse(response))
fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getifscCodeCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeCheck(ifsc)
getifscCodeCheckMutableData.postValue(handleResponse(response))
}
}
val getifscCodeDetailsCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun ifscCodeDetailsApi(ifsc : String, token: String) = viewModelScope.launch {
getifscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeDetailsCheck(ifsc, token)
getifscCodeDetailsCheckMutableData.postValue(handleRatesResponse(response))
fun ifscCodeDetailsApi(ifsc : String, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getifscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeDetailsCheck(ifsc, token)
getifscCodeDetailsCheckMutableData.postValue(handleResponse(response))
}
}
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getPaymentModeMutableData.postValue(Resource.Loading())
val response = mainRepository.payModeCheck(getCodeRequest, token)
getPaymentModeMutableData.postValue(handleRatesResponse(response))
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getPaymentModeMutableData.postValue(Resource.Loading())
val response = mainRepository.payModeCheck(getCodeRequest, token)
getPaymentModeMutableData.postValue(handleResponse(response))
}
}
val getFDResponseMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun createFDApi(getRatesRequest: CreateFDRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getFDResponseMutableData.postValue(Resource.Loading())
val response = mainRepository.createFDKYCResponse(getRatesRequest, token)
getFDResponseMutableData.postValue(handleResponse(response))
}
}
}

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

@ -137,7 +137,7 @@
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
<com.nivesh.production.bajajfd.adapter.DisableAdapter
android:id="@+id/viewPager"
android:contentDescription="@string/viewpager"
android:layout_width="match_parent"


+ 2
- 1
app/src/main/res/layout/fragment_bajajfd_step_three.xml View File

@ -165,8 +165,9 @@
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/addressProofType"
android:inputType="none"
android:padding="@dimen/margin_5"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
tools:layout_editor_absoluteY="230dp" />


+ 36
- 14
app/src/main/res/layout/fragment_bajajfd_step_two.xml View File

@ -193,11 +193,12 @@
android:id="@+id/spTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_5"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectTitle"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -222,8 +223,9 @@
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectGender"
android:inputType="none"
android:padding="@dimen/margin_5"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -296,7 +298,10 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
@ -305,9 +310,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/enterOccupation"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -317,7 +323,10 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
@ -326,9 +335,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectIncome"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -374,8 +384,9 @@
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectMaritalStatus"
android:inputType="none"
android:padding="@dimen/margin_5"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -465,7 +476,10 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
@ -474,9 +488,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectState"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/tlState"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -486,7 +501,10 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginEnd="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
app:hintEnabled="false">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
@ -495,9 +513,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectCity"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/tlCity"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -567,9 +586,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectTitle"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -675,9 +695,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectRelation"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>
@ -750,9 +771,10 @@
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner_with_line"
android:hint="@string/selectRelation"
android:padding="@dimen/margin_5"
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
</com.google.android.material.textfield.TextInputLayout>


+ 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>

+ 2
- 0
app/src/main/res/values-hi-rIN/strings.xml View File

@ -247,5 +247,7 @@
<string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string>
<string name="pay">PAY</string>
<string name="payment">Payment</string>
<string name="validGuardianDetails">Please enter Guardian Details</string>
</resources>

+ 2
- 0
app/src/main/res/values/strings.xml View File

@ -247,6 +247,8 @@
<string name="paymentModeCategory">PaymentMode</string>
<string name="customerCategory">CustomerCategory</string>
<string name="pay">PAY</string>
<string name="payment">Payment</string>
<string name="validGuardianDetails">Please enter Guardian Details</string>
<array name="addressType">
<item>Aadhaar Card</item>


Loading…
Cancel
Save

Powered by TurnKey Linux.