Browse Source

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

# Conflicts:
#	app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
#	app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
#	app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
#	app/src/main/java/com/nivesh/production/bajajfd/util/ProgressUtil.kt
#	settings.gradle
Manoj 2 years ago
parent
commit
639e744f63
27 changed files with 543 additions and 388 deletions
  1. +2
    -2
      app/build.gradle
  2. +3
    -4
      app/src/main/AndroidManifest.xml
  3. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/adapter/SectionsPagerAdapter.kt
  4. +8
    -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. +42
    -32
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  11. +44
    -33
      app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt
  12. +135
    -4
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
  13. +50
    -31
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt
  14. +108
    -40
      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. +2
    -1
      app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt
  17. +22
    -13
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  18. +3
    -3
      app/src/main/java/com/nivesh/production/bajajfd/util/ProgressUtil.kt
  19. +20
    -7
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt
  20. +41
    -34
      app/src/main/res/layout/activity_bajaj_fd.xml
  21. +5
    -30
      app/src/main/res/layout/fragment_bajajfd_step_five.xml
  22. +0
    -136
      app/src/main/res/layout/fragment_step_fail.xml
  23. +6
    -3
      app/src/main/res/values-hi-rIN/strings.xml
  24. +1
    -1
      app/src/main/res/values-night/themes.xml
  25. +6
    -3
      app/src/main/res/values/strings.xml
  26. +1
    -1
      app/src/main/res/values/themes.xml
  27. +2
    -2
      settings.gradle

+ 2
- 2
app/build.gradle View File

@ -51,8 +51,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"


+ 3
- 4
app/src/main/AndroidManifest.xml View File

@ -5,11 +5,10 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28"
tools:ignore="ScopedStorage" />
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-feature
android:name="android.hardware.camera"
@ -29,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]

+ 8
- 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>
@ -160,6 +160,12 @@ interface ApiInterface {
@Header("token") token: String
): Response<JsonObject>
@POST("GetCodes")
suspend fun customerListApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("BankValidationAPI_S")
suspend fun bankValidationApi(
@Body bankValidationApiRequest: BankValidationApiRequest,


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

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

@ -1,23 +1,25 @@
package com.nivesh.production.bajajfd.repositories
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.interfaces.ApiInterface
import com.nivesh.production.bajajfd.model.*
import okhttp3.RequestBody
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
@ -25,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)
@ -88,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)
suspend fun freshToken(body: RequestBody) =
apiInterface.freshToken(body)
// 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)
}

+ 44
- 33
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
@ -30,6 +31,8 @@ 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.*
@ -54,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
@ -66,15 +69,15 @@ class BajajFdMainActivity : BaseActivity() {
}
private fun init() {
binding = ActivityBajajFdBinding.inflate(layoutInflater)
setContentView(binding.root)
//start Repository
viewModel = ViewModelProvider(
this@BajajFdMainActivity,
FDModelProviderFactory(MainRepository(ApiClient.getApiClient))
)[BajajFDViewModel::class.java]
binding = ActivityBajajFdBinding.inflate(layoutInflater)
binding.apply {
setContentView(this.root)
}
loginRole = 5
if (Common.isNetworkAvailable(this)) {
@ -88,7 +91,6 @@ class BajajFdMainActivity : BaseActivity() {
private fun getStepsCountApi() {
if (Common.isNetworkAvailable(this)) {
ProgressUtil.showLoading(this)
val fdStepsCount = FDStepsCountRequest()
fdStepsCount.FDProvider = getString(R.string.bajaj)
fdStepsCount.NiveshClientCode = "8872" // 60476
@ -106,6 +108,9 @@ class BajajFdMainActivity : BaseActivity() {
when (code) {
200 -> {
stepCount = stepsCountResponse.Response.StepsCount
if (stepCount == 3) {
binding.llStep4.visibility = View.GONE
}
getClientDetailsApi(stepsCountResponse.Response.StepsCount)
}
650 -> ""
@ -124,7 +129,7 @@ class BajajFdMainActivity : BaseActivity() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -136,7 +141,6 @@ class BajajFdMainActivity : BaseActivity() {
private fun getClientDetailsApi(stepsCount: Int) {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
ProgressUtil.showLoading(this)
val getClientDetailsRequest = getClientDetailsRequest()
getClientDetailsRequest.client_code = "8872"
getClientDetailsRequest.AppOrWeb = getString(R.string.app)
@ -160,6 +164,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) {
@ -190,7 +195,7 @@ class BajajFdMainActivity : BaseActivity() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
hideLoading()
}
is Resource.DataError -> {
@ -202,7 +207,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(
@ -222,12 +227,12 @@ class BajajFdMainActivity : BaseActivity() {
}
// set viewPager
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments, stepsCount)
sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments)
val viewPager: DisableAdapter = binding.viewPager
viewPager.setPagingEnabled(false)
viewPager.adapter = sectionsPagerAdapter
viewPager.setPagingEnabled(false)
if (sectionsPagerAdapter.count > 1) {
viewPager.offscreenPageLimit = sectionsPagerAdapter.count - 1
viewPager.offscreenPageLimit = stepCount
} else {
viewPager.offscreenPageLimit = 1
}
@ -246,7 +251,8 @@ class BajajFdMainActivity : BaseActivity() {
defaultShape(),
defaultShape(),
defaultShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
1 -> {
@ -254,7 +260,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
defaultShape(),
defaultShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
2 -> {
@ -262,7 +269,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
selectedShape(),
defaultShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
3 -> {
@ -270,7 +278,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
selectedShape(),
selectedShape(),
defaultShape()
defaultShape(),
stepsCount
)
}
4 -> {
@ -278,7 +287,8 @@ class BajajFdMainActivity : BaseActivity() {
selectedShape(),
selectedShape(),
selectedShape(),
selectedShape()
selectedShape(),
stepsCount
)
}
}
@ -293,7 +303,6 @@ class BajajFdMainActivity : BaseActivity() {
private fun checkFDCKYCApi() {
if (Common.isNetworkAvailable(this@BajajFdMainActivity)) {
ProgressUtil.showLoading(this)
if (getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN?.isNotEmpty()!! && getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE?.isNotEmpty()!!) {
val checkFDKYCRequest = CheckFDKYCRequest()
checkFDKYCRequest.Mobile =
@ -337,7 +346,7 @@ class BajajFdMainActivity : BaseActivity() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -354,12 +363,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
@ -370,6 +383,9 @@ class BajajFdMainActivity : BaseActivity() {
// step 2 response
fun stepTwoApi() {
binding.viewPager.currentItem = 2
if (stepCount == 3) {
stepFourBajajFDFragment.displayReceivedData()
}
}
// step 3 response
@ -425,16 +441,16 @@ class BajajFdMainActivity : BaseActivity() {
fun paymentReQueryApi() {
if (Common.isNetworkAvailable(this)) {
ProgressUtil.showLoading(this)
val paymentReQueryRequest = PaymentReQueryRequest()
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) {
is Resource.Success -> {
Log.e("response", "-->$response")
Log.e("paymentReQueryApi ", "response -->$response")
val paymentReQueryResponse: PaymentReQueryResponse =
Gson().fromJson(
response.data?.toString(),
@ -442,7 +458,8 @@ class BajajFdMainActivity : BaseActivity() {
)
paymentReQueryResponse.Response.StatusCode.let { code ->
when (code) {
200 -> {
650 -> ""
else -> {
if (stepCount == 4) {
binding.viewPager.currentItem = 4
} else {
@ -450,13 +467,6 @@ class BajajFdMainActivity : BaseActivity() {
}
stepFiveBajajFDFragment.getData(paymentReQueryResponse)
}
650 -> ""
else -> {
showDialogValidation(
this@BajajFdMainActivity,
paymentReQueryResponse.Response.Errors[0].ErrorMessage
)
}
}
}
}
@ -466,7 +476,7 @@ class BajajFdMainActivity : BaseActivity() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
hideLoading()
}
is Resource.DataError -> {
@ -475,4 +485,5 @@ class BajajFdMainActivity : BaseActivity() {
}
}
}
}

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

@ -1,12 +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() {
@ -17,24 +25,147 @@ class StepFiveBajajFDFragment : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_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) {
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{
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()
}
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
(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 -> {
}
}
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
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 -> {
binding.btnViewOrder.setOnClickListener {
}
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


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

@ -17,6 +17,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
class StepFourBajajFDFragment : Fragment() {
@ -62,43 +63,60 @@ 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
}
}
}
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,
@ -135,7 +153,7 @@ class StepFourBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -155,12 +173,12 @@ class StepFourBajajFDFragment : Fragment() {
getCodeRequest.Category = getString(R.string.customerCategory)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
(activity as BajajFdMainActivity).viewModel.paymentModeApi(
(activity as BajajFdMainActivity).viewModel.customerListApi(
getCodeRequest,
token,
activity as BajajFdMainActivity
)
(activity as BajajFdMainActivity).viewModel.getPaymentModeMutableData.observe(
(activity as BajajFdMainActivity).viewModel.customerListMutableData.observe(
viewLifecycleOwner
) { response ->
when (response) {
@ -217,6 +235,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,
@ -266,7 +285,7 @@ class StepFourBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {


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

@ -2,12 +2,14 @@ package com.nivesh.production.bajajfd.ui.fragment
import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.content.DialogInterface
import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.OpenableColumns
import android.util.Base64
@ -19,6 +21,7 @@ import android.widget.*
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
@ -31,10 +34,12 @@ 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.Common.Companion.getFileExtension
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogWithTwoButtons
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.ImageUtil
import com.nivesh.production.bajajfd.util.Resource
import java.io.*
import java.util.*
class StepThreeBajajFDFragment : Fragment() {
@ -48,7 +53,6 @@ class StepThreeBajajFDFragment : Fragment() {
private val mapImage: HashMap<String, String> = HashMap()
private lateinit var listOfDocType: List<GetCodes>
private var check: Array<String>? = null
private var panString: String = ""
private var photoString: String = ""
@ -65,14 +69,44 @@ class StepThreeBajajFDFragment : Fragment() {
private val secondDocUpload: Int = 4
private var actionType: Int = -1
private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_MEDIA_IMAGES
)
} else {
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
}
private val requestPermission = registerForActivityResult(
private val requestCameraPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
Log.e("permission:", "Granted")
takeImage()
} else {
Log.e("permission:", "Denied")
showDialogWithTwoButtons(
(activity as BajajFdMainActivity), getString(R.string.cameraPermission), getString(
R.string.permissionRequired
)
)
}
}
private val requestGalleryPermission = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { permission ->
if (!permission.containsValue(false)) {
selectImageIntent?.launch("image/*")
} else {
showDialogWithTwoButtons(
(activity as BajajFdMainActivity), getString(R.string.galleryPermission), getString(
R.string.permissionsRequired
)
)
}
}
@ -90,12 +124,6 @@ class StepThreeBajajFDFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
check = arrayOf(
getString(R.string.takePhoto),
getString(R.string.chooseFromGallery),
getString(R.string.cancel)
)
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? ->
if (uri != null) {
@ -208,40 +236,80 @@ class StepThreeBajajFDFragment : Fragment() {
)
builder.setTitle(getString(R.string.addPhoto))
builder.setItems(
check
) { dialog: DialogInterface, item: Int ->
if (check!![item] == getString(R.string.takePhoto)) {
val permission = ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
)
if (permission == PackageManager.PERMISSION_GRANTED) {
takeImage()
} else {
requestPermission.launch(
Manifest.permission.CAMERA
)
arrayOf(
getString(R.string.takePhoto),
getString(R.string.chooseFromGallery),
getString(R.string.cancel)
)
) { dialog: DialogInterface, pos ->
when (pos) {
0 -> {
if (hasPermissions(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
)
) {
takeImage()
} else {
onClickRequestPermission()
}
dialog.dismiss()
}
dialog.dismiss()
} else if (check!![item] == getString(R.string.chooseFromGallery)) {
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
)
1 -> {
if (hasPermissions(activity as BajajFdMainActivity, *permissions)) {
selectImageIntent?.launch("image/*")
} else {
requestGalleryPermission.launch(permissions)
}
dialog.dismiss()
}
else -> {
dialog.dismiss()
}
} else if (check!![item] == getString(R.string.cancel)) {
dialog.dismiss()
}
}
builder.show()
}
private fun hasPermissions(activity: Activity, vararg permissions: String?): Boolean {
for (permission in permissions) {
if (ActivityCompat.checkSelfPermission(
activity,
permission!!
) != PackageManager.PERMISSION_GRANTED
) {
return false
}
}
return true
}
private fun onClickRequestPermission() {
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED -> {
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) -> {
requestCameraPermission.launch(
Manifest.permission.CAMERA
)
}
else -> {
requestCameraPermission.launch(
Manifest.permission.CAMERA
)
}
}
}
private fun setOtherUploadLayout(itemName: String?) {
binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
@ -524,11 +592,11 @@ class StepThreeBajajFDFragment : Fragment() {
)
binding.spDocType.setAdapter(adapter)
binding.spDocType.setText(
adapter.getItem(0)?.Value,
adapter.getItem(0)?.Label,
false
)
setOtherUploadLayout(adapter.getItem(0)?.Value)
docValue = adapter.getItem(0)?.Value.toString()
setOtherUploadLayout(adapter.getItem(0)?.Label)
docValue = adapter.getItem(0)?.Label.toString()
}
}


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

@ -42,6 +42,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 java.util.*
@ -713,6 +714,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) {
@ -747,7 +749,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -872,6 +874,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,
@ -939,7 +942,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -1706,6 +1709,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) {
@ -1740,7 +1744,7 @@ class StepTwoBajajFDFragment : Fragment() {
}
}
is Resource.Loading -> {
ProgressUtil.hideLoading()
}
is Resource.DataError -> {
@ -1751,7 +1755,6 @@ class StepTwoBajajFDFragment : Fragment() {
private fun refreshToken() {
}
private fun dialogForBankList(bankList: List<Bank>) {


+ 2
- 1
app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt View File

@ -5,7 +5,8 @@ import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel
class FDModelProviderFactory (private val mainRepository: MainRepository) : ViewModelProvider.Factory {
class FDModelProviderFactory(private val mainRepository: MainRepository) :
ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return BajajFDViewModel(mainRepository) as T


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

@ -1,22 +1,31 @@
package com.nivesh.production.bajajfd.util
import android.Manifest
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
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.Settings
import android.text.format.DateFormat
import android.util.Log
import android.util.Patterns
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.startActivity
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.R
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import kotlinx.coroutines.CoroutineExceptionHandler
import org.json.JSONObject
import retrofit2.HttpException
@ -120,11 +129,18 @@ class Common {
builder.show()
}
fun showDialogWithTwoButtons(activity: Activity?, message: CharSequence?) {
fun showDialogWithTwoButtons(activity: Activity?, message: CharSequence?, title: String) {
val builder = AlertDialog.Builder(activity)
builder.setTitle(title)
builder.setMessage(message)
if (activity != null) {
builder.setPositiveButton(activity.getString(R.string.Ok)) { dialogInterface, _ ->
val intent = Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", (activity as BajajFdMainActivity).packageName, null)
)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
activity.startActivity(intent)
dialogInterface.dismiss()
}
builder.setNegativeButton(activity.getString(R.string.cancel)) { dialogInterface, _ ->
@ -190,21 +206,11 @@ class Common {
}
fun handleResponse(response: 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())
}
@ -243,7 +249,7 @@ class Common {
}
fun isMinor(date: String): Boolean {
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
val dt1: Date = simpleDateFormat.parse(date) as Date
val year: Int = DateFormat.format("yyyy", dt1).toString().toInt()
val month: Int = DateFormat.format("mm", dt1).toString().toInt()
@ -272,5 +278,8 @@ class Common {
""
}
}
}
}

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

@ -18,7 +18,7 @@ object ProgressUtil{
fun showLoading(ctx: Context){
// instantiating the lateint objects
// instantiating the lateInit objects
dialogBuilder= AlertDialog.Builder(ctx)
pDialog= ProgressBar(ctx)
@ -28,11 +28,11 @@ object ProgressUtil{
alertDialog=dialogBuilder.create()
// magic of transparent background goes here
alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
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 containging the ProgressBar
// finally displaying the Alertdialog containing the ProgressBar
alertDialog.show()
}


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

@ -335,6 +335,17 @@ open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewMo
}
}
val customerListMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun customerListApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
customerListMutableData.postValue(Resource.Loading())
val response = mainRepository.customerListCheck(getCodeRequest, token)
customerListMutableData.postValue(handleResponse(response))
}
}
fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String,
activity: Activity
) =
@ -346,21 +357,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>

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

@ -17,7 +17,6 @@
android:background="@color/NiveshColorAppBg"
android:fillViewport="true"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/btnNext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@ -86,31 +85,30 @@
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/congratulations"
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:text="@string/transactionIsSuccessful"
android:layout_marginTop="@dimen/margin_15"
android:textColor="@color/black"
android:textSize="@dimen/text_size_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.419"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCongrats" />
<TextView
android:id="@+id/tvSuccessMsgDetail"
android:visibility="gone"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -127,34 +125,11 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- </com.google.android.material.card.MaterialCardView>-->
<include
android:id="@+id/fragmentStepFail"
layout="@layout/fragment_step_fail"
android:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.core.widget.NestedScrollView>
<!-- <TextView-->
<!-- android:id="@+id/tvDownloadInvoice"-->
<!-- style="@style/semiBoldStyle"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="center_vertical"-->
<!-- android:layout_marginTop="@dimen/margin_20"-->
<!-- android:backgroundTint="@color/blue"-->
<!-- android:text="@string/downloadInvoice"-->
<!-- android:textColor="@color/blue"-->
<!-- android:textSize="@dimen/text_size_16"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/linearLayoutTwo"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/btnNext"-->
<!-- app:layout_constraintStart_toStartOf="parent" />-->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnViewOrder"
android:layout_width="wrap_content"


+ 0
- 136
app/src/main/res/layout/fragment_step_fail.xml View File

@ -1,136 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cardViewThree"
style="@style/CustomCardViewTopStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_5"
android:layout_marginRight="@dimen/margin_5"
android:padding="@dimen/margin_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="12dp"
android:background="@color/white"
android:padding="@dimen/margin_5"
app:layout_constraintBottom_toTopOf="@+id/tvCongrats"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
<ImageView
android:id="@+id/logoTwo"
android:layout_width="@dimen/margin_150"
android:layout_height="18dp"
android:layout_marginTop="8dp"
android:src="@drawable/bajaj_logo"
app:layout_constraintBottom_toTopOf="@+id/tvFdRatingTwo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:contentDescription="@string/contentDescription"/>
<TextView
android:id="@+id/tvFdRatingTwo"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/schemeRating"
android:textColor="@color/greyColor2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logoTwo"
app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cardViewFour"
style="@style/CustomCardViewBottomStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_5"
android:layout_marginRight="@dimen/margin_5"
android:layout_marginBottom="@dimen/margin_5"
android:padding="@dimen/margin_10"
app:cardBackgroundColor="@color/greyColor4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cardViewThree"
app:layout_constraintVertical_bias="0.0">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_10"
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/textViewFail1"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/sorry"
android:textColor="@color/black"
android:textSize="@dimen/text_size_16"
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/tvFailMsg"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/TransactionIsUnsuccessful"
android:textColor="@color/black"
android:textSize="@dimen/text_size_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.419"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewFail1" />
<TextView
android:id="@+id/tvSorryMsg"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="@string/tryAgainLater"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.393"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvFailMsg" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>

+ 6
- 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>
@ -248,6 +246,11 @@
<string name="add_new_account">Add New Account</string>
<string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cameraPermission">You Need to Give Permission of Camera for uploading Image</string>
<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-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>


+ 6
- 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>
@ -248,6 +246,11 @@
<string name="add_new_account">Add New Account</string>
<string name="Ok"><font fgcolor='#FF8E8E93'>OK</font></string>
<string name="cameraPermission">You Need to Give Permission of Camera for uploading Image</string>
<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>


+ 2
- 2
settings.gradle View File

@ -16,5 +16,5 @@ dependencyResolutionManagement {
}
}
}
rootProject.name = "NiveshSDK"
include ':app'
rootProject.name = "NiveshFDSDK"
include ':app'

Loading…
Cancel
Save

Powered by TurnKey Linux.