Browse Source

payment option

pankaj 2 years ago
parent
commit
dda88b15da
24 changed files with 425 additions and 159 deletions
  1. +2
    -2
      app/build.gradle
  2. +1
    -1
      app/src/main/AndroidManifest.xml
  3. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SectionsPagerAdapter.kt
  4. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  5. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FinaliseFD.kt
  6. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FinalizeFDRequest.kt
  7. +5
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FinalizeFDResponse.kt
  8. +7
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/FinalizeKYCRequest.kt
  9. +9
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXXXXXX.kt
  10. +40
    -28
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  11. +35
    -17
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  12. +135
    -13
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
  13. +48
    -29
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  14. +10
    -6
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  15. +7
    -4
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  16. +50
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/ProgressUtil.kt
  17. +9
    -7
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  18. +41
    -34
      app/src/main/res/layout/activity_bajaj_fd.xml
  19. +3
    -5
      app/src/main/res/layout/fragment_bajajfd_step_five.xml
  20. +2
    -3
      app/src/main/res/values-hi-rIN/strings.xml
  21. +1
    -1
      app/src/main/res/values-night/themes.xml
  22. +2
    -3
      app/src/main/res/values/strings.xml
  23. +1
    -1
      app/src/main/res/values/themes.xml
  24. +1
    -1
      settings.gradle

+ 2
- 2
app/build.gradle View File

@ -50,8 +50,8 @@ dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
// Architectural Components
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"


+ 1
- 1
app/src/main/AndroidManifest.xml View File

@ -28,7 +28,7 @@
android:label="@string/appName"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.NiveshSDK"
android:theme="@style/Theme.NiveshFDSDK"
tools:targetApi="31">
<activity


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

@ -5,13 +5,13 @@ import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class SectionsPagerAdapter(manager: FragmentManager,private val fragments: Array<Fragment>, private val NumberOfTabs: Int) : FragmentPagerAdapter(manager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
class SectionsPagerAdapter(manager: FragmentManager,private val fragments: Array<Fragment>) : FragmentPagerAdapter(manager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
private val titles = ArrayList<String>()
override fun getItem(position: Int): Fragment = fragments[position]
override fun getCount(): Int = NumberOfTabs
override fun getCount(): Int = fragments.size
override fun getPageTitle(position: Int): CharSequence = titles[position]

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

@ -52,13 +52,13 @@ interface ApiInterface {
@POST("FinaliseFD")
suspend fun finaliseFD(
@Body requestBody: RequestBody,
@Body requestBody: FinalizeFDRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("FinaliseKYC")
suspend fun finaliseKYC(
@Body requestBody: RequestBody,
@Body requestBody: FinalizeKYCRequest,
@Header("token") token: String
): Response<JsonObject>


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

@ -0,0 +1,7 @@
package com.nivesh.production.bajajfd.model
data class FinaliseFD(
var FDProvider: String? = "",
var NiveshClientCode: String? = "",
var UniqueId: String? = ""
)

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

@ -0,0 +1,5 @@
package com.nivesh.production.bajajfd.model
data class FinalizeFDRequest(
var FinaliseFD: FinaliseFD? = null
)

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

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

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

@ -0,0 +1,7 @@
package com.nivesh.production.bajajfd.model
data class FinalizeKYCRequest(
var FDProvider: String? = "",
var NiveshClientCode: String? = "",
var UniqueId: String? = ""
)

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

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

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

@ -4,18 +4,22 @@ import com.nivesh.production.bajajfd.interfaces.ApiInterface
import com.nivesh.production.bajajfd.model.*
class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getRatesResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun getCodesResponse(requestBody: GetCodeRequest, token: String) =
apiInterface.getCodes(requestBody, token)
// MainActivity
suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest, token: String) =
apiInterface.getFDStepsCount(requestBody, token)
suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest, token: String) =
apiInterface.getClientDetails(getClientDetails, token)
// Step One
suspend fun getRatesResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun getCodesResponse(requestBody: GetCodeRequest, token: String) =
apiInterface.getCodes(requestBody, token)
suspend fun createCalculateFDMaturityAmount(
requestBody: GetMaturityAmountRequest,
token: String
@ -23,30 +27,10 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
apiInterface.getCalculateFDMaturityAmount(requestBody, token)
// Step Two
suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) =
apiInterface.createFDApp(createFDRequest, token)
suspend fun documentsUploadResponse(getRatesRequest: DocumentUpload, token: String) =
apiInterface.documentsUpload(getRatesRequest, token)
suspend fun saveFDOtherDataResponse(getRatesRequest: SaveFDOtherDataRequest, token: String) =
apiInterface.saveFDOtherData(getRatesRequest, token)
suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) =
apiInterface.getFDDetails(getRatesRequest, token)
suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun finaliseFDResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun finaliseKYCResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
suspend fun paymentReQueryResponse(getRatesRequest: PaymentReQueryRequest, token: String) =
apiInterface.paymentReQuery(getRatesRequest, token)
suspend fun panCheck(panCheck: PanCheckRequest, token: String) =
apiInterface.panCheckApi(panCheck, token)
@ -86,13 +70,41 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.payModeApi(getCodeRequest, token)
suspend fun bankValidationApiRequest(bankValidationApiRequest: BankValidationApiRequest, token: String) =
apiInterface.bankValidationApi(bankValidationApiRequest, token)
// Step Three
suspend fun documentsUploadResponse(getRatesRequest: DocumentUpload, token: String) =
apiInterface.documentsUpload(getRatesRequest, token)
suspend fun saveFDOtherDataResponse(getRatesRequest: SaveFDOtherDataRequest, token: String) =
apiInterface.saveFDOtherData(getRatesRequest, token)
suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) =
apiInterface.getFDDetails(getRatesRequest, token)
suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest, token: String) =
apiInterface.getRates(getRatesRequest, token)
// Step 4
suspend fun customerListCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.customerListApi(getCodeRequest, token)
suspend fun checkFDKYCRequest(checkFDKYCRequest: CheckFDKYCRequest, token: String) =
apiInterface.checkFDKYC(checkFDKYCRequest, token)
suspend fun bankValidationApiRequest(bankValidationApiRequest: BankValidationApiRequest, token: String) =
apiInterface.bankValidationApi(bankValidationApiRequest, token)
// Step 5
suspend fun finaliseFDResponse(getRatesRequest: FinalizeFDRequest, token: String) =
apiInterface.finaliseFD(getRatesRequest, token)
suspend fun finaliseKYCResponse(getRatesRequest: FinalizeKYCRequest, token: String) =
apiInterface.finaliseKYC(getRatesRequest, token)
suspend fun paymentReQueryResponse(getRatesRequest: PaymentReQueryRequest, token: String) =
apiInterface.paymentReQuery(getRatesRequest, token)
}

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

@ -6,6 +6,7 @@ import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.util.Log
import android.view.View
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
@ -29,6 +30,9 @@ import com.nivesh.production.bajajfd.util.Common.Companion.getDate
import com.nivesh.production.bajajfd.util.Common.Companion.selectedShape
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.ProgressUtil
import com.nivesh.production.bajajfd.util.ProgressUtil.hideLoading
import com.nivesh.production.bajajfd.util.ProgressUtil.showLoading
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.*
@ -53,7 +57,7 @@ class BajajFdMainActivity : BaseActivity() {
var nomineeGuardianDetails: NomineeGuardianDetails = NomineeGuardianDetails()
var getClientDetailsResponse: getClientDetailsResponse = getClientDetailsResponse()
var uniqueId: String = ""
private var stepCount: Int = 0
var stepCount: Int = 0
private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
private lateinit var fragments: Array<Fragment>
var dialogWebView: Dialog? = null
@ -106,6 +110,9 @@ class BajajFdMainActivity : BaseActivity() {
when (code) {
200 -> {
stepCount = stepsCountResponse.Response.StepsCount
if (stepCount == 3) {
binding.llStep4.visibility = View.GONE
}
getClientDetailsApi(stepsCountResponse.Response.StepsCount)
}
650 -> ""
@ -159,6 +166,7 @@ class BajajFdMainActivity : BaseActivity() {
userRequest.deviceInfo = deviceInfo
getClientDetailsRequest.UserRequest = userRequest
Log.e("getClientDetail ", " Request -->" + Gson().toJson(getClientDetailsRequest))
showLoading(this@BajajFdMainActivity)
viewModel.getClientDetails(getClientDetailsRequest, token, this)
viewModel.getClientDetailsMutableData.observe(this) { response ->
when (response) {
@ -189,7 +197,7 @@ class BajajFdMainActivity : BaseActivity() {
}
}
is Resource.Loading -> {
hideLoading()
}
is Resource.DataError -> {
@ -201,7 +209,7 @@ class BajajFdMainActivity : BaseActivity() {
private fun setViewPager(stepsCount: Int) {
// steps setting
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape())
setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape(), stepsCount)
if (stepCount == 3) {
fragments = arrayOf(
@ -221,15 +229,15 @@ class BajajFdMainActivity : BaseActivity() {
}
// set viewPager
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments)
val viewPager: DisableAdapter = binding.viewPager
viewPager.adapter = sectionsPagerAdapter
viewPager.setPagingEnabled(false)
// if (sectionsPagerAdapter.count > 1) {
viewPager.offscreenPageLimit = stepCount - 1
// } else {
// viewPager.offscreenPageLimit = 1
// }
if (sectionsPagerAdapter.count > 1) {
viewPager.offscreenPageLimit = stepCount
} else {
viewPager.offscreenPageLimit = 1
}
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int,
@ -245,7 +253,8 @@ class BajajFdMainActivity : BaseActivity() {
defaultShape(),
defaultShape(),
defaultShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
1 -> {
@ -253,7 +262,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
defaultShape(),
defaultShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
2 -> {
@ -261,7 +271,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
selectedShape(),
defaultShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
3 -> {
@ -269,7 +280,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
selectedShape(),
selectedShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
4 -> {
@ -277,7 +289,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
selectedShape(),
selectedShape(),
selectedShape()
selectedShape(),
stepsCount
)
}
}
@ -352,12 +365,16 @@ class BajajFdMainActivity : BaseActivity() {
drawable: Drawable?,
drawable1: Drawable?,
drawable2: Drawable?,
drawable3: Drawable?
drawable3: Drawable?,
stepsCount: Int
) {
binding.stepOne.background = drawable
binding.stepTwo.background = drawable1
binding.stepThree.background = drawable2
binding.stepFour.background = drawable3
if (stepsCount == 4) {
binding.stepFour.background = drawable3
}
}
// step 1 response
@ -430,6 +447,7 @@ class BajajFdMainActivity : BaseActivity() {
paymentReQueryRequest.UniqueId = uniqueId
paymentReQueryRequest.NiveshClientCode =
getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
ProgressUtil.showLoading(this@BajajFdMainActivity)
viewModel.getPaymentReQuery(paymentReQueryRequest, token, this)
viewModel.getPaymentReQueryMutableData.observe(this) { response ->
when (response) {
@ -460,7 +478,7 @@ class BajajFdMainActivity : BaseActivity() {
}
}
is Resource.Loading -> {
hideLoading()
}
is Resource.DataError -> {


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

@ -1,13 +1,20 @@
package com.nivesh.production.bajajfd.ui.fragment
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.google.gson.Gson
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding
import com.nivesh.production.bajajfd.model.PaymentReQueryResponse
import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
class StepFiveBajajFDFragment : Fragment() {
@ -18,32 +25,147 @@ class StepFiveBajajFDFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding.apply {
_binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false)
}
_binding = FragmentBajajfdStepFiveBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.tvCongrats.text = ""
binding.tvSuccessMessage.text = ""
binding.btnViewOrder.setOnClickListener {
}
}
fun getData(paymentReQueryResponse: PaymentReQueryResponse) {
if (paymentReQueryResponse.Response.StatusCode == 200) {
binding.tvCongrats.text = getString(R.string.congratulations)
binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message
if (paymentReQueryResponse.Response.Message.isNotEmpty()) {
val arrOfStr: List<String> = paymentReQueryResponse.Response.Message.split(" ", limit = 2)
binding.tvCongrats.text = arrOfStr[0]
binding.tvCongrats.setTextColor(
ContextCompat.getColor(
activity as BajajFdMainActivity,
R.color.green
)
)
binding.tvSuccessMessage.text = arrOfStr[1]
}
}else{
binding.tvCongrats.text = getString(R.string.sorry)
binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message
if (paymentReQueryResponse.Response.Message.isNotEmpty()) {
val arrOfStr: List<String> = paymentReQueryResponse.Response.Message.split(" ", limit = 2)
binding.tvCongrats.text = arrOfStr[0]
binding.tvCongrats.setTextColor(
ContextCompat.getColor(
activity as BajajFdMainActivity,
R.color.red
)
)
binding.tvSuccessMessage.text = arrOfStr[1]
}
}
finalizeFDApi()
finalizeKYCApi()
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
private fun finalizeFDApi() {
val finalizeFDRequest = FinalizeFDRequest()
val finaliseFD = FinaliseFD()
finaliseFD.FDProvider = getString(R.string.bajaj)
finaliseFD.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
finaliseFD.UniqueId = (activity as BajajFdMainActivity).uniqueId
finalizeFDRequest.FinaliseFD = finaliseFD
binding.tvCongrats.text = ""
binding.tvSuccessMessage.text = ""
binding.btnViewOrder.setOnClickListener {
(activity as BajajFdMainActivity).viewModel.finaliseFD(
finalizeFDRequest, Constants.token, activity as BajajFdMainActivity
)
(activity as BajajFdMainActivity).viewModel.getFinalizeFDMutableData.observe(viewLifecycleOwner){ response ->
when (response) {
is Resource.Success -> {
Log.e("finalizeKYC ", " response-->${response.data.toString()}")
val finalizeFDResponse: FinalizeFDResponse =
Gson().fromJson(response.data?.toString(), FinalizeFDResponse::class.java)
finalizeFDResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
}
650 -> ""
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
finalizeFDResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
private fun finalizeKYCApi() {
val finalizeKYCRequest = FinalizeKYCRequest()
finalizeKYCRequest.FDProvider = getString(R.string.bajaj)
finalizeKYCRequest.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
finalizeKYCRequest.UniqueId = (activity as BajajFdMainActivity).uniqueId
(activity as BajajFdMainActivity).viewModel.finaliseKYC(
finalizeKYCRequest, Constants.token, activity as BajajFdMainActivity
)
(activity as BajajFdMainActivity).viewModel.getFinalizeKYCMutableData.observe(viewLifecycleOwner){ response ->
when (response) {
is Resource.Success -> {
Log.e("finalizeKYC ", " response-->${response.data.toString()}")
val finalizeFDResponse: FinalizeFDResponse =
Gson().fromJson(response.data?.toString(), FinalizeFDResponse::class.java)
finalizeFDResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
}
650 -> ""
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
finalizeFDResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
}
}
is Resource.Loading -> {
}
is Resource.DataError -> {
}
}
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null


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

@ -18,6 +18,7 @@ import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.ProgressUtil
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.MyObseravble
@ -64,35 +65,29 @@ class StepFourBajajFDFragment : Fragment() {
}
binding.btnNext.setOnClickListener {
if ((activity as BajajFdMainActivity).loginRole == 5) {
selectedList = ""
for (getCodes in listOfCustomer) {
if (getCodes.isSelected) {
selectedList = if (selectedList.isEmpty()) {
getCodes.Value
} else {
selectedList.plus(",").plus(getCodes.Value)
}
selectedList = ""
for (getCodes in listOfCustomer) {
if (getCodes.isSelected) {
selectedList = if (selectedList.isEmpty()) {
getCodes.Value
} else {
selectedList.plus(",").plus(getCodes.Value)
}
}
if (binding.checkBox.isChecked && selectedList.isNotEmpty()) {
val saveFDOtherDataRequest = SaveFDOtherDataRequest()
saveFDOtherDataRequest.FDProvider = getString(R.string.bajaj)
saveFDOtherDataRequest.UniqueId = (activity as BajajFdMainActivity).uniqueId
saveFDOtherDataRequest.Values = selectedList
saveFDOtherDataRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
// bajajFDInterface.stepFourApi(saveFDOtherDataRequest, payUrl, Value)
saveFDOtherData(saveFDOtherDataRequest, payUrl, value)
} else {
showDialogValidation(
activity as BajajFdMainActivity,
resources.getString(R.string.validTermsConditions)
)
}
} else {
// go to view order
}
if (validated()) {
if ((activity as BajajFdMainActivity).loginRole == 5) {
val saveFDOtherDataRequest = SaveFDOtherDataRequest()
saveFDOtherDataRequest.FDProvider = getString(R.string.bajaj)
saveFDOtherDataRequest.UniqueId = (activity as BajajFdMainActivity).uniqueId
saveFDOtherDataRequest.Values = selectedList
saveFDOtherDataRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
saveFDOtherData(saveFDOtherDataRequest, payUrl, value)
} else {
// go to view order
}
}
}
@ -100,11 +95,34 @@ class StepFourBajajFDFragment : Fragment() {
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
if ((activity as BajajFdMainActivity).stepCount == 4) {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 2
} else {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 1
}
}
}
private fun validated(): Boolean {
if (selectedList.isEmpty()) {
showDialogValidation(
activity as BajajFdMainActivity,
getString(R.string.validTermsCondition)
)
return false
} else if (!binding.checkBox.isChecked) {
showDialogValidation(
activity as BajajFdMainActivity,
resources.getString(R.string.validTermsConditions)
)
return false
} else {
return true
}
}
private fun saveFDOtherData(data: SaveFDOtherDataRequest, payUrl: String, value: String) {
ProgressUtil.showLoading(activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.saveFDOtherData(
data,
token,
@ -141,7 +159,7 @@ class StepFourBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -223,6 +241,7 @@ class StepFourBajajFDFragment : Fragment() {
getFDDetailsRequest.NiveshClientCode =
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
getFDDetailsRequest.UniqueId = (activity as BajajFdMainActivity).uniqueId
ProgressUtil.showLoading(activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.getFDDetails(
getFDDetailsRequest,
token,
@ -272,7 +291,7 @@ class StepFourBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {


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

@ -4,7 +4,6 @@ import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.content.DialogInterface
import android.content.Intent
import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Bitmap
@ -13,7 +12,6 @@ import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.OpenableColumns
import android.provider.Settings
import android.util.Base64
import android.util.Log
import android.view.LayoutInflater
@ -92,8 +90,11 @@ class StepThreeBajajFDFragment : Fragment() {
if (isGranted) {
takeImage()
} else {
showDialogWithTwoButtons((activity as BajajFdMainActivity), getString(R.string.cameraPermission), getString(
R.string.permissionRequired))
showDialogWithTwoButtons(
(activity as BajajFdMainActivity), getString(R.string.cameraPermission), getString(
R.string.permissionRequired
)
)
}
}
@ -103,8 +104,11 @@ class StepThreeBajajFDFragment : Fragment() {
if (!permission.containsValue(false)) {
selectImageIntent?.launch("image/*")
} else {
showDialogWithTwoButtons((activity as BajajFdMainActivity), getString(R.string.galleryPermission), getString(
R.string.permissionsRequired))
showDialogWithTwoButtons(
(activity as BajajFdMainActivity), getString(R.string.galleryPermission), getString(
R.string.permissionsRequired
)
)
}
}


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

@ -43,6 +43,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan
import com.nivesh.production.bajajfd.util.Common.Companion.removeError
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.ProgressUtil
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.MyObseravble
import java.util.*
@ -731,6 +732,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
private fun createFDApi(data: CreateFDRequest) {
ProgressUtil.showLoading(activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.createFDApi(data, token, activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.getFDResponseMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
@ -765,7 +767,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -890,6 +892,7 @@ class StepTwoBajajFDFragment : Fragment() {
bankValidationApiRequest.PhoneNo = phoneNumber
bankValidationApiRequest.RoleId = loginRole
bankValidationApiRequest.BankNo = 1
ProgressUtil.showLoading(activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.bankValidationApi(
bankValidationApiRequest,
token,
@ -957,7 +960,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -1724,6 +1727,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
private fun apiForEligibleBankList() {
ProgressUtil.showLoading(activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.bankListApi(token,getString(R.string.language), activity as BajajFdMainActivity)
(activity as BajajFdMainActivity).viewModel.getFDBankListMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
@ -1758,7 +1762,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -1769,7 +1773,6 @@ class StepTwoBajajFDFragment : Fragment() {
private fun refreshToken() {
}
private fun dialogForBankList(bankList: List<Bank>) {


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

@ -0,0 +1,50 @@
package com.nivesh.production.bajajfd.util
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.util.Log
import android.view.Window
import android.widget.ProgressBar
@SuppressLint("StaticFieldLeak")
object ProgressUtil{
private lateinit var dialogBuilder: AlertDialog.Builder
private lateinit var alertDialog: AlertDialog
private lateinit var pDialog: ProgressBar
fun showLoading(ctx: Context){
// instantiating the lateInit objects
dialogBuilder= AlertDialog.Builder(ctx)
pDialog= ProgressBar(ctx)
// setting up the dialog
dialogBuilder.setCancelable(false)
dialogBuilder.setView(pDialog)
alertDialog=dialogBuilder.create()
// magic of transparent background goes here
alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
// setting the alertDialog's BackgroundDrawable as the color resource of any color with 1% opacity
alertDialog.window?.setBackgroundDrawable(ColorDrawable(Color.parseColor("#00141414")))
// finally displaying the Alertdialog containing the ProgressBar
alertDialog.show()
}
fun hideLoading(){
try {
if(alertDialog.isShowing){
alertDialog.dismiss()
}
} catch (e: UninitializedPropertyAccessException) {
Log.e("TAG","AlertDialog UninitializedPropertyAccessException")
}
}
}

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

@ -358,21 +358,23 @@ open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewMo
}
}
fun finaliseFD(getRatesRequest: GetRatesRequest, token: String,
val getFinalizeFDMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun finaliseFD(finalizeFDRequest: FinalizeFDRequest, token: String,
activity: Activity) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseFDResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
getFinalizeFDMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseFDResponse(finalizeFDRequest, token)
getFinalizeFDMutableData.postValue(handleResponse(response))
}
}
fun finaliseKYC(getRatesRequest: GetRatesRequest, token: String,
val getFinalizeKYCMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun finaliseKYC(getRatesRequest: FinalizeKYCRequest, token: String,
activity: Activity) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
getRatesMutableData.postValue(Resource.Loading())
getFinalizeKYCMutableData.postValue(Resource.Loading())
val response = mainRepository.finaliseKYCResponse(getRatesRequest, token)
getRatesMutableData.postValue(handleResponse(response))
getFinalizeKYCMutableData.postValue(handleResponse(response))
}
}

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

@ -12,33 +12,33 @@
android:background="@color/white">
<LinearLayout
android:orientation="horizontal"
android:background="@color/red"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/red"
android:orientation="horizontal">
<ImageView
android:id="@+id/imgBack"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
android:padding="@dimen/margin_10"
android:layout_gravity="center_vertical"
android:src="@drawable/svg_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
android:contentDescription="@string/back"
android:gravity="center" />
android:gravity="center"
android:padding="@dimen/margin_10"
android:src="@drawable/svg_back" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="@dimen/text_size_14"
android:minHeight="?actionBarSize"
android:padding="@dimen/margin_16"
android:text="@string/fd"
android:textAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Title" />
android:textAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
android:textColor="@color/white"
android:textSize="@dimen/text_size_14" />
</LinearLayout>
@ -47,9 +47,9 @@
android:id="@+id/llSteps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/greyColor4"
android:gravity="center"
android:orientation="horizontal"
android:background="@color/greyColor4"
android:paddingTop="@dimen/margin_10"
android:paddingBottom="@dimen/margin_10">
@ -112,36 +112,43 @@
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
<View
android:layout_width="@dimen/margin_22"
android:layout_height="@dimen/margin_2"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_5"
android:background="@color/green" />
<ImageView
android:id="@+id/stepFour"
android:layout_width="@dimen/margin_19"
android:layout_height="@dimen/margin_19"
android:contentDescription="@string/step4"
android:gravity="center" />
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:id="@+id/llStep4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_3"
android:text="@string/step4"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
android:orientation="horizontal">
<View
android:layout_width="@dimen/margin_22"
android:layout_height="@dimen/margin_2"
android:layout_marginStart="@dimen/margin_5"
android:layout_marginEnd="@dimen/margin_5"
android:background="@color/green" />
<ImageView
android:id="@+id/stepFour"
android:layout_width="@dimen/margin_19"
android:layout_height="@dimen/margin_19"
android:contentDescription="@string/step4"
android:gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_3"
android:text="@string/step4"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
<com.nivesh.production.bajajfd.adapter.DisableAdapter
android:id="@+id/viewPager"
android:contentDescription="@string/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/viewpager"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

+ 3
- 5
app/src/main/res/layout/fragment_bajajfd_step_five.xml View File

@ -85,26 +85,24 @@
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginTop="@dimen/margin_12"
android:textColor="@color/black"
android:textSize="@dimen/text_size_17"
android:text=""
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.437"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvSuccessMessage"
style="@style/regularStyle"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginTop="@dimen/margin_15"
android:textColor="@color/black"
android:textSize="@dimen/text_size_16"
android:text=""
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.419"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCongrats" />


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

@ -1,5 +1,5 @@
<resources>
<string name="appName">NiveshSDK</string>
<string name="appName">NiveshFDSDK</string>
<string name="bajaj">Bajaj</string>
<string name="app">App</string>
<string name="source">nivesh</string>
@ -225,11 +225,9 @@
<!-- Step Five -->
<string name="viewOrder">View Order</string>
<string name="congratulations">Congratulations</string>
<string name="transactionIsSuccessful">Your transaction is successful.</string>
<string name="certificateOnEmail">You will receive fixed deposit certificate\nwithin 3 working days on email</string>
<string name="downloadInvoice">Download Invoice</string>
<string name="sorry">Sorry!</string>
<string name="TransactionIsUnsuccessful">Your transaction is unsuccessful.</string>
<string name="tryAgainLater">Sorry for the inconvenience please try again later</string>
<string name="retry">Retry</string>
@ -252,6 +250,7 @@
<string name="galleryPermission">You Need to Give Permission of Gallery for uploading Image</string>
<string name="permissionRequired">Permission Required !</string>
<string name="permissionsRequired">Permission\'s Required !</string>
<string name="validTermsCondition"><![CDATA[Please select at least one Term & Condition.]]></string>


+ 1
- 1
app/src/main/res/values-night/themes.xml View File

@ -1,6 +1,6 @@
<resources>
<!-- Base application theme. -->
<style name="Theme.NiveshSDK" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<style name="Theme.NiveshFDSDK" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">#FFBB86FC</item>
<item name="colorPrimaryVariant">@color/colorPrimary</item>


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

@ -1,5 +1,5 @@
<resources>
<string name="appName">NiveshSDK</string>
<string name="appName">NiveshFDSDK</string>
<string name="bajaj">Bajaj</string>
<string name="app">App</string>
<string name="source">nivesh</string>
@ -225,11 +225,9 @@
<!-- Step Five -->
<string name="viewOrder">View Order</string>
<string name="congratulations">Congratulations</string>
<string name="transactionIsSuccessful">Your transaction is successful.</string>
<string name="certificateOnEmail">You will receive fixed deposit certificate\nwithin 3 working days on email</string>
<string name="downloadInvoice">Download Invoice</string>
<string name="sorry">Sorry!</string>
<string name="TransactionIsUnsuccessful">Your transaction is unsuccessful.</string>
<string name="tryAgainLater">Sorry for the inconvenience please try again later</string>
<string name="retry">Retry</string>
@ -252,6 +250,7 @@
<string name="galleryPermission">You Need to Give Permission of Gallery for uploading Image</string>
<string name="permissionRequired">Permission Required !</string>
<string name="permissionsRequired">Permission\'s Required !</string>
<string name="validTermsCondition"><![CDATA[Please select at least one Term & Condition.]]></string>
</resources>

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

@ -1,6 +1,6 @@
<resources>
<!-- Base application theme. -->
<style name="Theme.NiveshSDK" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<style name="Theme.NiveshFDSDK" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">#898989</item>
<item name="colorPrimaryVariant">@color/colorPrimary</item>


+ 1
- 1
settings.gradle View File

@ -13,5 +13,5 @@ dependencyResolutionManagement {
maven { url 'https://jitpack.io' }
}
}
rootProject.name = "NiveshSDK"
rootProject.name = "NiveshFDSDK"
include ':app'

Loading…
Cancel
Save

Powered by TurnKey Linux.