Browse Source

POB all Changes

ManojBranch
Manoj 2 years ago
parent
commit
0d450f93b5
30 changed files with 955 additions and 333 deletions
  1. +2
    -0
      app/build.gradle
  2. +1
    -0
      app/src/main/AndroidManifest.xml
  3. +18
    -3
      app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt
  4. +14
    -14
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/Data.kt
  5. +8
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/Filedetail.kt
  6. +7
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/GetAreaDetailByPinResponse.kt
  7. +9
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/PartnerDetailResponse.kt
  8. +23
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/ResultXXXX.kt
  9. +8
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/ResultXXXXX.kt
  10. +8
    -2
      app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt
  11. +2
    -2
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt
  12. +80
    -4
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt
  13. +431
    -152
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt
  14. +1
    -1
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt
  15. +8
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt
  16. +9
    -10
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt
  17. +56
    -4
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt
  18. +10
    -3
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt
  19. +3
    -0
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt
  20. +71
    -4
      app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt
  21. +7
    -0
      app/src/main/res/drawable/round_blue_solid.xml
  22. +5
    -20
      app/src/main/res/drawable/svg_close.xml
  23. +10
    -3
      app/src/main/res/layout/activity_register.xml
  24. +92
    -0
      app/src/main/res/layout/dialog_t_c.xml
  25. +1
    -55
      app/src/main/res/layout/fragment_almost_there.xml
  26. +53
    -52
      app/src/main/res/layout/fragment_get_started.xml
  27. +1
    -0
      app/src/main/res/layout/new_distributor_sign_step_one.xml
  28. +8
    -2
      app/src/main/res/values-hi-rIN/strings.xml
  29. +1
    -0
      app/src/main/res/values/colors.xml
  30. +8
    -2
      app/src/main/res/values/strings.xml

+ 2
- 0
app/build.gradle View File

@ -73,4 +73,6 @@ dependencies {
// Navigation Components
implementation "androidx.navigation:navigation-fragment-ktx:2.5.3"
implementation "androidx.navigation:navigation-ui-ktx:2.5.3"
implementation 'com.squareup.picasso:picasso:2.71828'
}

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

@ -8,6 +8,7 @@
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-feature
android:name="android.hardware.camera"


+ 18
- 3
app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt View File

@ -5,6 +5,7 @@ import com.nivesh.production.partnerOnBoarding.model.*
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest
import com.nivesh.production.partnerOnBoarding.model.response.PartnerDetailResponse
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.Response
@ -15,6 +16,12 @@ interface ApiInterface {
@POST("Partner/CreatePartner")
suspend fun postPartnerCreation(@Body partnerRequest: PartnerRequest): Response<JsonObject>
@GET("Partner/GetPartnerDetails")
suspend fun getPartnerDetail(
@Query("PartnerCode") code: String,
@Header("AccessKey") value: String
): Response<JsonObject>
@POST("Partner/ValidatePartner")
suspend fun postPartnerValidate(@Body validatePartnerRequest: ValidatePartnerRequest): Response<JsonObject>
@ -34,15 +41,20 @@ interface ApiInterface {
suspend fun getPANDetail(@Query("PAN") value: String): Response<JsonObject>
@GET("User/GetAllDocumentsType")
suspend fun getDocumentType(@Query("Role") value: String, @Query("Type") type: String): Response<JsonObject>
suspend fun getDocumentType(
@Query("Role") value: String,
@Query("Type") type: String
): Response<JsonObject>
@Multipart
@POST("Partner/DocumentsUpload")
suspend fun getUploadDocument(
@Part multiPartBody: List<MultipartBody.Part>,
// @Part multiPartBody: List<MultipartBody.Part>,
@Part multiPartBody: MultipartBody.Part,
@Part("PartnerCode") partnerCode: Int,
@Part("PartnerRole") partnerRole: Int,
@Part("DocumentId") documentId: Int
@Part("DocumentId") documentId: Int,
@Part("FileId") fileId: Int
): Response<JsonObject>
@POST("Partner/SaveEAgreement")
@ -50,4 +62,7 @@ interface ApiInterface {
@GET("User/GetAllProduct")
suspend fun getAllProduct(): Response<JsonObject>
@GET("User/GetAreaDetailByPincode")
suspend fun getAreaDetailByPinCode(@Query("Pincode") value: String): Response<JsonObject>
}

+ 14
- 14
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/Data.kt View File

@ -1,18 +1,18 @@
package com.nivesh.production.partnerOnBoarding.model
data class Data(
val Address1: String,
val Address2: String,
val Address3: String,
val Category: String,
val City: String,
val DOB: String,
val FirstName: String,
val FullName: String,
val Gender: String,
val LastName: String,
val MiddleName: Any,
val Pincode: String,
val State: String,
val Street: String
var Address1: String = "",
var Address2: String = "",
var Address3: String = "",
var Category: String = "",
var City: String = "",
var DOB: String = "",
var FirstName: String = "",
var FullName: String = "",
var Gender: String = "",
var LastName: String = "",
var MiddleName: Any = "",
var Pincode: String = "",
var State: String = "",
var Street: String = ""
)

+ 8
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/Filedetail.kt View File

@ -0,0 +1,8 @@
package com.nivesh.production.partnerOnBoarding.model.response
data class Filedetail(
val DocumentId: Int,
val FileId: Int,
val FilePath: String,
val FileSide: String
) : java.io.Serializable

+ 7
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/GetAreaDetailByPinResponse.kt View File

@ -0,0 +1,7 @@
package com.nivesh.production.partnerOnBoarding.model.response
data class GetAreaDetailByPinResponse(
val Message: String,
val Result: ResultXXXXX,
val Status: String
)

+ 9
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/PartnerDetailResponse.kt View File

@ -0,0 +1,9 @@
package com.nivesh.production.partnerOnBoarding.model.response
import java.io.Serializable
data class PartnerDetailResponse(
val Message: String,
val Result: ResultXXXX,
val Status: String
) : Serializable

+ 23
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/ResultXXXX.kt View File

@ -0,0 +1,23 @@
package com.nivesh.production.partnerOnBoarding.model.response
import java.io.Serializable
data class ResultXXXX(
val ARNNumber: String,
val Address1: String,
val Address2: String,
val City: String,
val DateOfExpiryAMFICertificate: String,
val DateOfIncorporation: String,
val DateOfPassingAMFICertificate: String,
val EUINNumber: String,
val Email: String,
val Mobile: String,
val Name: String,
val PAN: String,
val PartnerType: String,
val Pin: String,
val State: String,
val Step: Int,
val filedetails: List<Filedetail> = emptyList()
) : Serializable

+ 8
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/response/ResultXXXXX.kt View File

@ -0,0 +1,8 @@
package com.nivesh.production.partnerOnBoarding.model.response
data class ResultXXXXX(
val CityId: String,
val CityName: String,
val StateId: String,
val StateName: String
)

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

@ -12,6 +12,9 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getPartnerCreationResponse(requestBody: PartnerRequest, token: String) =
apiInterface.postPartnerCreation(requestBody)
suspend fun getPartnerDetailResponse(value: String, token: String) =
apiInterface.getPartnerDetail(value,token)
suspend fun getValidatePartnerResponse(validatePartnerRequest: ValidatePartnerRequest) =
apiInterface.postPartnerValidate(validatePartnerRequest)
@ -33,12 +36,15 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getDocumentTypeResponse(value: String,type: String) =
apiInterface.getDocumentType(value,type)
suspend fun getDocumentUploadResponse(multipartBody: List<MultipartBody.Part>,pc: Int,pr: Int,di: Int) =
apiInterface.getUploadDocument(multipartBody,pc,pr,di)
suspend fun getDocumentUploadResponse(multipartBody: MultipartBody.Part,pc: Int,pr: Int,di: Int,fileId: Int) =
apiInterface.getUploadDocument(multipartBody,pc,pr,di,fileId)
suspend fun getSaveEAgreement(requestBody: RequestBody, token: String) =
apiInterface.postSaveEAgreement(requestBody)
suspend fun getAllProduct() =
apiInterface.getAllProduct()
suspend fun getAreaDetailByPinCode(value: String) =
apiInterface.getAreaDetailByPinCode(value)
}

+ 2
- 2
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt View File

@ -34,11 +34,11 @@ class RegisterActivity : BaseActivity() {
}
binding.btnDistributor.setOnClickListener {
commonMethod(4, "advisory")
commonMethod(4, "3")//advisory
}
binding.btnReferrer.setOnClickListener {
commonMethod(3, "Associate")
commonMethod(3, "4")//associate
}
binding.imgInfo.setOnClickListener {


+ 80
- 4
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt View File

@ -1,5 +1,7 @@
package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.annotation.SuppressLint
import android.app.Dialog
import android.os.Build
import android.os.Bundle
import android.text.Editable
@ -8,6 +10,10 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
@ -18,6 +24,7 @@ import com.nivesh.production.partnerOnBoarding.databinding.FragmentAlmostThereBi
import com.nivesh.production.partnerOnBoarding.db.PreferenceManager
import com.nivesh.production.partnerOnBoarding.model.DataX
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.response.GetAreaDetailByPinResponse
import com.nivesh.production.partnerOnBoarding.model.response.PANResponse
import com.nivesh.production.partnerOnBoarding.model.response.PartnerResponse
import com.nivesh.production.partnerOnBoarding.providerfactory.OnBoardingModelProviderFactory
@ -27,6 +34,9 @@ import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidPinCode
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogValidation
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.privacyPolicyLink
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.tcLink
import com.nivesh.production.partnerOnBoarding.util.ProgressUtil
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class AlmostThereFragment : BaseFragment() {
@ -179,11 +189,13 @@ class AlmostThereFragment : BaseFragment() {
}
binding.tvTermsAndCondition.setOnClickListener {
dialogTCPrivacyPolicy(tcLink.plus("nivesh.html"), getString(R.string.termsAndCondition))
}
binding.tvPrivacyPolicy.setOnClickListener {
binding.tvPrivacyPolicy.setOnClickListener {
dialogTCPrivacyPolicy(privacyPolicyLink.plus("nivesh.html"), getString(R.string.privacy_policy))
}
binding.tvAgreement.setOnClickListener {
}
@ -204,7 +216,7 @@ class AlmostThereFragment : BaseFragment() {
partnerRequest.Mobile = arguments?.getString("mobile")!!
partnerRequest.OtherProductName = ""
partnerRequest.PartnerCode = PreferenceManager((activity as SignUpActivity)).getPartnerCode()
partnerRequest.PartnerType = "advisory"
partnerRequest.PartnerType = getString(R.string.advisory)
partnerRequest.DateOfIncorporation = Common.getDateFromTimeMills(System.currentTimeMillis())
Log.e("check_partner", partnerRequest.toString())
apiPartnerCreation(partnerRequest)
@ -244,6 +256,71 @@ class AlmostThereFragment : BaseFragment() {
showDialogValidation((activity as SignUpActivity),res.Message)
}
}
if(panResponse != null){
pinAPIForCityState(panResponse.Result.data.Pincode)
}
(activity as SignUpActivity).viewModelOne.getAreaDetailByPinMutableData.observe(
viewLifecycleOwner
) { response ->
val res: GetAreaDetailByPinResponse =
Gson().fromJson(
response?.data.toString(),
GetAreaDetailByPinResponse::class.java
)
binding.spCity.setText(res.Result.CityName)
binding.spState.setText(res.Result.StateName)
}
}
private fun pinAPIForCityState(pinCode: String) {
try {
(activity as SignUpActivity).viewModelOne.getAreaDetailByPin(
pinCode,
(activity as SignUpActivity)
)
} catch (e: Exception) {
ProgressUtil.hideLoading()
Log.e("checkPANError", e.message.toString())
}
}
@SuppressLint("SetJavaScriptEnabled")
private fun dialogTCPrivacyPolicy(url: String, type: String) {
var dialog = Dialog(activity as SignUpActivity)
dialog.setContentView(R.layout.dialog_t_c)
val webViewNeedHelp = dialog.findViewById<WebView>(R.id.webViewNeedHelp)
val txtCancel = dialog.findViewById<TextView>(R.id.txtCancel)
val btnOk = dialog.findViewById<TextView>(R.id.btnOk)
val wvTitleTxt: TextView = dialog.findViewById(R.id.wvTitleTxt)
wvTitleTxt.text = type
txtCancel.setOnClickListener{dialog.dismiss() }
btnOk.setOnClickListener{dialog.dismiss() }
webViewNeedHelp.webViewClient = MyWebViewClient()
webViewNeedHelp.loadUrl(url)
webViewNeedHelp.settings.javaScriptEnabled = true
webViewNeedHelp.settings.domStorageEnabled = true
dialog.show()
val lp = WindowManager.LayoutParams()
lp.copyFrom(dialog.window!!.attributes)
lp.width = WindowManager.LayoutParams.MATCH_PARENT
lp.height = WindowManager.LayoutParams.MATCH_PARENT
dialog.window!!.attributes = lp
}
class MyWebViewClient : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
return super.shouldOverrideUrlLoading(view, url)
}
override fun onPageFinished(view: WebView, url: String) {}
}
private fun apiPartnerCreation(partnerRequest: PartnerRequest) {
@ -320,5 +397,4 @@ class AlmostThereFragment : BaseFragment() {
return false
} else return binding.cbCheck.isChecked
}
}

+ 431
- 152
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt View File

@ -5,7 +5,6 @@ package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog
import android.content.DialogInterface
import android.content.pm.PackageManager
import android.database.Cursor
@ -33,12 +32,14 @@ import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.core.view.isVisible
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
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.Gson
import com.google.gson.GsonBuilder
import com.nivesh.production.partnerOnBoarding.BuildConfig
import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.api.ApiClient
@ -53,12 +54,14 @@ import com.nivesh.production.partnerOnBoarding.repositories.MainRepository
import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.*
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.getDateFromTimeMills
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.getFileExtension
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidIndividualPan
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogValidation
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogWithTwoButtons
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.maxFileSize
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
import com.squareup.picasso.Picasso
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody
@ -86,14 +89,26 @@ class GetStartedFragment : BaseFragment() {
private var panFileExt: String? = ""
private var docValue: String = ""
private var isFront: Boolean = false
private var isBack: Boolean = false
private var isARN: Boolean = false
private var isEUIN: Boolean = false
private lateinit var viewModel: OnBoardingViewModel
private lateinit var listOfDocType: List<Data>
private var listOfDocType: List<Data> = emptyList()
private var listOfFullDocType: List<Data> = emptyList()
private var imageSelectedList = ArrayList<ImageSelectedModel>()
private var imageSelectedArnEuinList = ArrayList<ImageSelectedModel>()
private var arnList = ArrayList<DataX>()
private var arnData: DataX? = null
private lateinit var panRes: PANResponse
private var selectedDocPosition = -1
private var selectedDocPosition = -1
private var documentUrlSelected: String = ""
private var documentTypeSelected: String = ""
private var isDataUpdate: Boolean = false
private val pt = PartnerRequest()
private var frontUpdatedFileId = 0
private var backUpdatedFileId = 0
private var arnUpdatedFileId = 0
private var euinUpdatedFileId = 0
private val permissions = arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
@ -156,22 +171,23 @@ class GetStartedFragment : BaseFragment() {
)[OnBoardingViewModel::class.java]
var docType = "I"
if (arguments?.getString("arnType").equals("Associate", true)) {
if (arguments?.getString("arnType").equals(getString(R.string.associateText), true)) {
commonMethodForVisibility(View.GONE)
docType = "N"
} else if (arguments?.getString("arnType").equals("advisory", true)) {
} else if (arguments?.getString("arnType").equals(getString(R.string.advisory), true)) {
commonMethodForVisibility(View.VISIBLE)
docType = "I"
}
documentTypeFullAPI()
documentTypeAPI(docType)
binding.edtPassingAMFI.setOnClickListener {
Common.datePicker(activity as SignUpActivity, binding.edtPassingAMFI,false)
Common.datePicker(activity as SignUpActivity, binding.edtPassingAMFI, false)
}
binding.edtExpiryAMFI.setOnClickListener {
Common.datePicker(activity as SignUpActivity, binding.edtExpiryAMFI,true)
Common.datePicker(activity as SignUpActivity, binding.edtExpiryAMFI, true)
}
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
@ -194,24 +210,26 @@ class GetStartedFragment : BaseFragment() {
override fun afterTextChanged(s: Editable?) {}
})
binding.edtEUINNumber.addTextChangedListener(object : TextWatcher{
binding.edtEUINNumber.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
Common.removeError(binding.tlEUINNumber)
}
override fun afterTextChanged(s: Editable?) {}
})
binding.edtEUINNumberNF.addTextChangedListener(object : TextWatcher{
binding.edtEUINNumberNF.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
Common.removeError(binding.tlEUINNumberNF)
}
override fun afterTextChanged(s: Editable?) {}
})
binding.ivInfo.setOnClickListener {
replaceFragment(
addFragment(
activity as BaseActivity,
R.id.signUpContainer,
QuestionsFragment(),
@ -247,10 +265,52 @@ class GetStartedFragment : BaseFragment() {
}
}
binding.saveDraft.setOnClickListener {
val partnerRequest = PartnerRequest()
if (!TextUtils.isEmpty(binding.edtArnNumber.text.toString().trim())) {
partnerRequest.ARNNumber = binding.edtArnNumber.text.toString().trim()
}
if (binding.tlEUINNumber.isVisible && !TextUtils.isEmpty(
binding.edtEUINNumber.text.toString().trim()
)
) {
partnerRequest.EUINNumber = binding.edtEUINNumber.text.toString().trim()
}
if (binding.tlEUINNumberNF.isVisible && !TextUtils.isEmpty(
binding.edtEUINNumberNF.text.toString().trim()
)
) {
partnerRequest.EUINNumber = binding.edtEUINNumberNF.text.toString().trim()
}
if (!TextUtils.isEmpty(binding.edtPassingAMFI.text.toString().trim())) {
partnerRequest.DateOfPassingAMFICertificate =
binding.edtPassingAMFI.text.toString().trim()
}
if (!TextUtils.isEmpty(binding.edtExpiryAMFI.text.toString().trim())) {
partnerRequest.DateOfExpiryAMFICertificate =
binding.edtExpiryAMFI.text.toString().trim()
}
if (!TextUtils.isEmpty(binding.edtPanNumber.text.toString().trim())) {
partnerRequest.PAN = binding.edtPanNumber.text.toString().trim()
}
if (!TextUtils.isEmpty(binding.edtFullNamePanCard.text.toString().trim())) {
partnerRequest.Name = binding.edtFullNamePanCard.text.toString().trim()
}
partnerRequest.Mobile = arguments?.getString("mobile")!!
partnerRequest.PartnerCode =
PreferenceManager((activity as SignUpActivity)).getPartnerCode()
partnerRequest.PartnerType = getString(R.string.advisory)
partnerRequest.DateOfIncorporation =
getDateFromTimeMills(System.currentTimeMillis())
apiPartnerCreation(partnerRequest)
}
binding.btnNext.setOnClickListener {
apiUploadDocument()
if (arguments?.getString("arnType").equals(getString(R.string.associateText), false)) {
if(validationAssociate()) {
if (validationAssociate()) {
val pt = PartnerRequest()
pt.Name = binding.edtFullNamePanCard.text.toString()
pt.PAN = binding.edtPanNumber.text.toString()
@ -258,14 +318,14 @@ class GetStartedFragment : BaseFragment() {
val fragment = AlmostThereFragment()
val bundle = Bundle()
bundle.putSerializable("InputValue", pt)
if(arnData!=null)
bundle.putSerializable("arnData", arnData)
if (arnData != null)
bundle.putSerializable("arnData", arnData)
bundle.putSerializable("panData", panRes)
bundle.putString("mobile", arguments?.getString("mobile"))
bundle.putString("arnType",arguments?.getString("arnType"))
bundle.putString("arnType", arguments?.getString("arnType"))
fragment.arguments = bundle
replaceFragment(
addFragment(
activity as BaseActivity,
R.id.signUpContainer,
fragment,
@ -274,9 +334,11 @@ class GetStartedFragment : BaseFragment() {
)
}
} else if (arguments?.getString("arnType").equals(getString(R.string.advisory), false)) {
} else if (arguments?.getString("arnType")
.equals(getString(R.string.advisory), false)
) {
if (validationAdvisory()) {
val pt = PartnerRequest()
pt.ARNNumber = binding.edtArnNumber.text.toString()
if (binding.edtEUINNumber.visibility == View.VISIBLE)
@ -287,30 +349,20 @@ class GetStartedFragment : BaseFragment() {
pt.Name = binding.edtFullNamePanCard.text.toString()
pt.PAN = binding.edtPanNumber.text.toString()
pt.DateOfPassingAMFICertificate = binding.edtPassingAMFI.text.toString()
pt.PartnerType = arguments?.getString("arnType").toString()
pt.PartnerCode =
PreferenceManager((activity as SignUpActivity)).getPartnerCode()
pt.Mobile = arguments?.getString("mobile").toString()
pt.DateOfIncorporation = getDateFromTimeMills(System.currentTimeMillis())
val fragment = AlmostThereFragment()
val bundle = Bundle()
bundle.putSerializable("InputValue", pt)
bundle.putSerializable("arnData", arnData)
bundle.putSerializable("panData", panRes)
bundle.putString("mobile", arguments?.getString("mobile"))
bundle.putString("arnType",arguments?.getString("arnType"))
fragment.arguments = bundle
replaceFragment(
activity as BaseActivity,
R.id.signUpContainer,
fragment,
"GET STARTED",
true
)
apiPartnerCreationContinue(pt)
}
}
}
binding.uploadFront.setOnClickListener {
actionType = mainPANUpload
isFront = true
setImageUploadType(front = true, back = false, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage()
} else {
@ -323,9 +375,11 @@ class GetStartedFragment : BaseFragment() {
binding.mbUploadChangeFront.setOnClickListener {
actionType = mainPANUpload
isFront = true
setImageUploadType(front = true, back = false, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage()
} else if (binding.ivFront.drawable != null) {
selectImage()
} else {
showDialogValidation(
activity as SignUpActivity,
@ -336,9 +390,11 @@ class GetStartedFragment : BaseFragment() {
binding.mbUploadChangeBack.setOnClickListener {
actionType = mainPANUpload
isFront = false
setImageUploadType(front = false, back = true, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage()
} else if (binding.ivBack.drawable != null) {
selectImage()
} else {
showDialogValidation(
activity as SignUpActivity,
@ -349,7 +405,7 @@ class GetStartedFragment : BaseFragment() {
binding.uploadBack.setOnClickListener {
actionType = mainPANUpload
isFront = false
setImageUploadType(front = false, back = true, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage()
} else {
@ -362,11 +418,13 @@ class GetStartedFragment : BaseFragment() {
binding.rlARNUpload.setOnClickListener {
actionType = mainARNPhotoUpload
setImageUploadType(front = false, back = false, aRN = true, eUIN = false)
selectImage()
}
binding.rlEUINUpload.setOnClickListener {
actionType = mainEUINPhotoUpload
setImageUploadType(front = false, back = false, aRN = false, eUIN = true)
selectImage()
}
@ -377,11 +435,14 @@ class GetStartedFragment : BaseFragment() {
if (arguments?.getString("arnType").equals(getString(R.string.advisory), true)) {
if (!isValidIndividualPan(s.toString().trim())) {
binding.rlEUINUpload.visibility = View.GONE
binding.edtEUINNumber.visibility = View.VISIBLE
binding.tlEUINNumber.visibility = View.VISIBLE
} else {
binding.rlEUINUpload.visibility = View.VISIBLE
if (!TextUtils.isEmpty(binding.edtEUINNumber.text)) {
binding.edtEUINNumberNF.setText(binding.edtEUINNumber.text.toString())
binding.edtEUINNumber.visibility = View.GONE
binding.tlEUINNumber.visibility = View.GONE
}
}
}
@ -455,12 +516,197 @@ class GetStartedFragment : BaseFragment() {
)
}
}
(activity as SignUpActivity).viewModelOne.getPartnerCreationSaveMutableData.observe(
viewLifecycleOwner
) { response ->
val res: PartnerResponse =
Gson().fromJson(
response?.data.toString(),
PartnerResponse::class.java
)
Log.e("check_res_partner", res.toString())
if (res.Status != null) {
showDialogValidation((activity as SignUpActivity), "Detail Saved in Draft")
}
}
(activity as SignUpActivity).viewModelOne.getPartnerCreationContinueMutableData.observe(
viewLifecycleOwner
) { response ->
val res: PartnerResponse =
Gson().fromJson(
response?.data.toString(),
PartnerResponse::class.java
)
if (res.Status != null || res.Status == getString(R.string.successText)) {
val fragment = AlmostThereFragment()
val bundle = Bundle()
bundle.putSerializable("InputValue", pt)
bundle.putSerializable("arnData", arnData)
bundle.putSerializable("panData", panRes)
bundle.putString("mobile", arguments?.getString("mobile"))
bundle.putString("arnType", arguments?.getString("arnType"))
fragment.arguments = bundle
addFragment(
activity as BaseActivity,
R.id.signUpContainer,
fragment,
"GET STARTED",
true
)
}
}
(activity as SignUpActivity).viewModelOne.getDocumentTypeFullMutableData.observe(
viewLifecycleOwner
) { response ->
val res: DocumentTypeResponse =
Gson().fromJson(
response?.data.toString(),
DocumentTypeResponse::class.java
)
if (res.Status == getString(R.string.successText)) {
listOfFullDocType = res.Result.Data
}
}
(activity as SignUpActivity).viewModelOne.getDocumentTypeMutableData.observe(
viewLifecycleOwner
) { response ->
ProgressUtil.hideLoading()
val res: DocumentTypeResponse =
Gson().fromJson(
response?.data.toString(),
DocumentTypeResponse::class.java
)
Log.e("checkDocRes", res.toString())
if (res.Status == getString(R.string.successText)) {
listOfDocType = res.Result.Data
if (listOfDocType.isNotEmpty()) {
setUpDocAdapter(listOfDocType)
if (arguments?.containsKey("partnerResponse") == true) {
val partnerDetailResponse: PartnerDetailResponse? =
(arguments?.getSerializable("partnerResponse") as? PartnerDetailResponse)
setUpPartnerResponseData(partnerDetailResponse)
}
}
apiAMFIDetail("Mobile", arguments?.getString("mobile"))
}
}
(activity as SignUpActivity).viewModelOne.getDocumentUploadMutableData.observe(
viewLifecycleOwner
) { response ->
val res: DocumentUploadResponse =
Gson().fromJson(
response?.data.toString(),
DocumentUploadResponse::class.java
)
if (res.Status == getString(R.string.successText)) {
Toast.makeText(activity as SignUpActivity, res.Message, Toast.LENGTH_LONG)
.show()
}
}
}
private fun setImageUploadType(front: Boolean, back: Boolean, aRN: Boolean, eUIN: Boolean) {
isFront = front
isBack = back
isARN = aRN
isEUIN = eUIN
}
private fun setUpPartnerResponseData(partnerResponse: PartnerDetailResponse?) {
if (partnerResponse?.Result?.ARNNumber != null) {
binding.edtArnNumber.setText(partnerResponse.Result.ARNNumber)
}
if (partnerResponse?.Result?.EUINNumber != null) {
binding.edtEUINNumber.setText(partnerResponse.Result.EUINNumber)
}
if (partnerResponse?.Result?.DateOfPassingAMFICertificate != null) {
binding.edtPassingAMFI.setText(partnerResponse.Result.DateOfPassingAMFICertificate)
}
if (partnerResponse?.Result?.DateOfExpiryAMFICertificate != null) {
binding.edtExpiryAMFI.setText(partnerResponse.Result.DateOfExpiryAMFICertificate)
}
if (partnerResponse?.Result?.PAN != null) {
binding.edtPanNumber.setText(partnerResponse.Result.PAN)
}
if (partnerResponse?.Result?.Name != null) {
binding.edtFullNamePanCard.setText(partnerResponse.Result.Name)
}
if (partnerResponse?.Result?.filedetails != null && partnerResponse.Result.filedetails.isNotEmpty()) {
if (listOfFullDocType != null && listOfFullDocType.isNotEmpty()) {
for (i in listOfFullDocType.indices) {
for (j in partnerResponse.Result.filedetails.indices) {
if (listOfFullDocType[i].DocumentId == partnerResponse.Result.filedetails[j].DocumentId) {
for(k in listOfDocType.indices) {
if(listOfFullDocType[i].DocumentType == listOfDocType[k].DocumentType) {
binding.spDocType.setText(listOfDocType[k].DocumentType)
setUpDocAdapter(listOfDocType)
}
}
if (partnerResponse.Result.filedetails[j].FilePath != null) {
isDataUpdate = true
documentUrlSelected = partnerResponse.Result.filedetails[j].FilePath
documentTypeSelected = listOfFullDocType[i].DocumentType
setVisibilityUrl(documentTypeSelected)
setFrontHideVisibleUrl(j, documentUrlSelected,partnerResponse.Result.filedetails[j].DocumentId,
partnerResponse.Result.filedetails[j].FileId)
}
}
}
}
}
}
}
private fun setUpDocAdapter(listOfDocType: List<Data>) {
val adapter = ArrayAdapter(
activity as SignUpActivity,
android.R.layout.simple_list_item_1,
listOfDocType
)
binding.spDocType.setAdapter(adapter)
}
private fun apiPartnerCreation(partnerRequest: PartnerRequest) {
val data = GsonBuilder().create().toJson(partnerRequest, PartnerRequest::class.java)
Log.e("partnerCreation", data.toString())
(activity as SignUpActivity).viewModelOne.getPartnerCreateSaveData(
partnerRequest,
"",
(activity as SignUpActivity)
)
}
private fun apiPartnerCreationContinue(partnerRequest: PartnerRequest) {
val data = GsonBuilder().create().toJson(partnerRequest, PartnerRequest::class.java)
Log.e("partnerCreationContinue", data.toString())
(activity as SignUpActivity).viewModelOne.getPartnerCreateContinueData(
partnerRequest,
"",
(activity as SignUpActivity)
)
}
private fun commonMethodForVisibility(visibility: Int) {
binding.edtArnNumber.visibility = visibility
binding.tlArnNumber.visibility = visibility
binding.edtEUINNumber.visibility = visibility
binding.tlEUINNumber.visibility = visibility
binding.tlArnNumber.visibility = visibility
binding.edtPassingAMFI.visibility = visibility
binding.tlPassingAMFI.visibility = visibility
@ -468,38 +714,29 @@ class GetStartedFragment : BaseFragment() {
binding.tlExpiryAMFI.visibility = visibility
}
private fun documentTypeAPI(docType: String) {
try {
ProgressUtil.showLoading(activity as SignUpActivity)
(activity as SignUpActivity).viewModelOne.getDocumentType(
private fun documentTypeFullAPI() {
if (listOfDocType != null && listOfDocType.isEmpty()) {
Log.e("check_activity_name", (activity as SignUpActivity).localClassName)
(activity as SignUpActivity).viewModelOne.getDocumentTypeFull(
"3",//Currently it is static
docType,
// Constants.BASE_URL_COMMON + "User/GetAllDocumentsType",
"",
(activity as SignUpActivity)
)
}
}
ProgressUtil.hideLoading()
(activity as SignUpActivity).viewModelOne.getDocumentTypeMutableData.observe(
viewLifecycleOwner
) { response ->
val res: DocumentTypeResponse =
Gson().fromJson(
response?.data.toString(),
DocumentTypeResponse::class.java
)
Log.e("checkDocRes", res.toString())
if (res.Status == getString(R.string.successText)) {
listOfDocType = res.Result.Data
if (listOfDocType.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as SignUpActivity,
android.R.layout.simple_list_item_1,
listOfDocType
)
binding.spDocType.setAdapter(adapter)
}
}
apiAMFIDetail("Mobile", arguments?.getString("mobile"))
@SuppressLint("SuspiciousIndentation")
private fun documentTypeAPI(docType: String) {
try {
if (listOfDocType != null && listOfDocType.isEmpty()) {
ProgressUtil.showLoading(activity as SignUpActivity)
Log.e("check_activity_name", (activity as SignUpActivity).localClassName)
(activity as SignUpActivity).viewModelOne.getDocumentType(
"3",//Currently it is static
docType,
(activity as SignUpActivity)
)
}
} catch (e: Exception) {
@ -616,17 +853,13 @@ class GetStartedFragment : BaseFragment() {
binding.tlPanNumber,
getString(R.string.pleaseArnNum)
)
}else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
} else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
commonErrorMethod(
binding.edtFullNamePanCard,
binding.tlFullNamePanCard,
getString(R.string.pleaseArnNum)
)
} else if(imageSelectedList != null && imageSelectedList.size == 0){
showDialogValidation((activity as SignUpActivity),getString(R.string.addressProofType))
return false
}
else return true
} else return true
}
private fun validationAdvisory(): Boolean {
@ -636,13 +869,16 @@ class GetStartedFragment : BaseFragment() {
binding.tlArnNumber,
getString(R.string.pleaseArnNum)
)
} else if (binding.edtEUINNumber.visibility != View.VISIBLE && binding.edtEUINNumber.text.toString().isEmpty()) {
} else if (binding.edtEUINNumber.visibility != View.VISIBLE && binding.edtEUINNumber.text.toString()
.isEmpty()
) {
commonErrorMethod(
binding.edtEUINNumber,
binding.tlEUINNumber,
getString(R.string.pleaseEuinNum)
)
} else if (binding.edtEUINNumberNF.visibility != View.VISIBLE && binding.edtEUINNumberNF.text.toString().isEmpty()
} else if (binding.edtEUINNumberNF.visibility != View.VISIBLE && binding.edtEUINNumberNF.text.toString()
.isEmpty()
) {
commonErrorMethod(
binding.edtEUINNumberNF,
@ -667,25 +903,39 @@ class GetStartedFragment : BaseFragment() {
binding.tlPanNumber,
getString(R.string.emptyPAN)
)
}else if (!isPanVerify) {
} else if (!isPanVerify) {
commonErrorMethod(
binding.edtPanNumber,
binding.tlPanNumber,
getString(R.string.invalidPAN)
)
}
else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
} else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
commonErrorMethod(
binding.edtFullNamePanCard,
binding.tlFullNamePanCard,
getString(R.string.full_name_as_on_pan_card)
)
} else if (imageSelectedList != null && imageSelectedList.size == 0) {
showDialogValidation(
(activity as SignUpActivity),
resources.getString(R.string.selectAddressProof)
)
false
} else if (!isDataUpdate) {
if (imageSelectedList == null || imageSelectedList.size == 0) {
showDialogValidation(
(activity as SignUpActivity),
resources.getString(R.string.selectAddressProof)
)
return false
} else true
} else if (isDataUpdate) {
return if (TextUtils.isEmpty(documentTypeSelected) && TextUtils.isEmpty(
documentUrlSelected
)
) {
showDialogValidation(
(activity as SignUpActivity),
getString(R.string.addressProofType)
)
false
} else {
true
}
} else {
true
}
@ -786,6 +1036,19 @@ class GetStartedFragment : BaseFragment() {
}
}
private fun setVisibilityUrl(s: String) {
binding.llDoc.visibility = View.VISIBLE
if (s.contains(getString(R.string.aadhaarText))) {
binding.txtFront.visibility = View.VISIBLE
binding.txtBack.visibility = View.VISIBLE
binding.llBack.visibility = View.VISIBLE
} else {
binding.txtFront.visibility = View.VISIBLE
binding.txtBack.visibility = View.GONE
binding.llBack.visibility = View.GONE
}
}
private fun getTmpFileUri(): Uri {
val tmpFile =
File.createTempFile("tmp_image_file", ".png", requireActivity().cacheDir).apply {
@ -876,12 +1139,15 @@ class GetStartedFragment : BaseFragment() {
if (type == "c") {
encodedPANBase64(fileExtension)
if (isFront) imageSelectedList.add(ImageSelectedModel(0, fileExtension))
else imageSelectedList.add(ImageSelectedModel(0, fileExtension))
else imageSelectedList.add(ImageSelectedModel(1, fileExtension))
} else {
val bitmap: Bitmap =
MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
val fileName: String = System.currentTimeMillis().toString()
var fileName = ""
if (isFront) fileName = "FRONT_".plus(System.currentTimeMillis().toString())
else if (isBack) fileName =
"BACK_".plus(System.currentTimeMillis().toString())
val file = File(fileDir, fileName.plus(".png"))
val fOut = FileOutputStream(file)
@ -891,7 +1157,7 @@ class GetStartedFragment : BaseFragment() {
fOut.close()
if (file.exists()) encodedPANBase64(file)
if (isFront) imageSelectedList.add(ImageSelectedModel(1, file))
if (isFront) imageSelectedList.add(ImageSelectedModel(0, file))
else imageSelectedList.add(ImageSelectedModel(1, file))
Log.e("check_panString", panString + "\n" + bitmap.toString())
}
@ -978,83 +1244,62 @@ class GetStartedFragment : BaseFragment() {
private fun apiUploadDocument() {
if (imageSelectedList != null && imageSelectedList.size != 0) {
val part = ArrayList<MultipartBody.Part>()
imageSelectedList.forEachIndexed { _, element ->
if (element.pos == 0) {
part.add(prepareImagePart(element.file, "front"))
} else {
part.add(prepareImagePart(element.file, "back"))
}
}
if(selectedDocPosition != -1) {
(activity as SignUpActivity).viewModelOne.getDocumentUpload(
part,
PreferenceManager((activity as SignUpActivity)).getPartnerCode().toInt(),
5,
listOfDocType[selectedDocPosition].DocumentId,
(activity as SignUpActivity)
)
}else{
showDialogValidation((activity as SignUpActivity),"Document Not Selected")
}
(activity as SignUpActivity).viewModelOne.getDocumentUploadMutableData.observe(
viewLifecycleOwner
) { response ->
Log.e("check_upload_res", response.toString())
val res: DocumentUploadResponse =
Gson().fromJson(
response?.data.toString(),
DocumentUploadResponse::class.java
for (i in 0 until imageSelectedList.size) {
if (imageSelectedList[i].pos == 0) {
apiUploadRequest(
prepareImagePart(imageSelectedList[i].file, "front"),
listOfDocType[selectedDocPosition].DocumentId,frontUpdatedFileId
)
} else if (imageSelectedList[i].pos == 1) {
apiUploadRequest(
prepareImagePart(imageSelectedList[i].file, "back"),
listOfDocType[selectedDocPosition].DocumentId,backUpdatedFileId
)
if (res.Status == getString(R.string.successText)) {
Toast.makeText(activity as SignUpActivity, res.Message, Toast.LENGTH_LONG)
.show()
}
}
}
if (imageSelectedArnEuinList != null && imageSelectedList.size != 0) {
val part = ArrayList<MultipartBody.Part>()
imageSelectedArnEuinList.forEachIndexed { _, element ->
if (element.pos == 0) {
part.add(prepareImagePart(element.file, "ARN"))
} else {
part.add(prepareImagePart(element.file, "EUIN"))
}
}
(activity as SignUpActivity).viewModelOne.getDocumentUpload(
part,
3,
5,
8,
(activity as SignUpActivity)
)
(activity as SignUpActivity).viewModelOne.getDocumentUploadMutableData.observe(
viewLifecycleOwner
) { response ->
Log.e("check_upload_res", response.toString())
val res: DocumentUploadResponse =
Gson().fromJson(
response?.data.toString(),
DocumentUploadResponse::class.java
)
if (res.Status == getString(R.string.successText)) {
Toast.makeText(activity as SignUpActivity, res.Message, Toast.LENGTH_LONG)
.show()
if (imageSelectedArnEuinList != null) {
for (i in 0 until imageSelectedArnEuinList.size) {
if (imageSelectedArnEuinList[i].pos == 0) {
for (j in listOfFullDocType.indices) {
if (listOfFullDocType[j].DocumentType.contains("ARN", ignoreCase = true)) {
apiUploadRequest(
prepareImagePart(
imageSelectedArnEuinList[i].file,
"front"
), listOfFullDocType[j].DocumentId,arnUpdatedFileId
)
break
}
}
} else if (imageSelectedArnEuinList[i].pos == 1) {
for (element in listOfFullDocType) {
if (element.DocumentType.contains("EUIN", ignoreCase = true)) {
apiUploadRequest(
prepareImagePart(
imageSelectedArnEuinList[i].file,
"front"
), listOfFullDocType[i].DocumentId,euinUpdatedFileId
)
}
}
}
}
}
}
private fun apiUploadRequest(imagePart: MultipartBody.Part, documentId: Int,fileId: Int) {
(activity as SignUpActivity).viewModelOne.getDocumentUpload(
imagePart,
PreferenceManager((activity as SignUpActivity)).getPartnerCode().toInt(),
5,
documentId,
fileId,
(activity as SignUpActivity)
)
}
private fun prepareImagePart(file: File, partName: String): MultipartBody.Part {
val requestBody: RequestBody =
file.asRequestBody("application/octet-stream".toMediaTypeOrNull())
@ -1080,4 +1325,38 @@ class GetStartedFragment : BaseFragment() {
binding.ivBack.setImageURI(uri)
}
}
private fun setFrontHideVisibleUrl(pos: Int, url: String, documentId: Int, fileId: Int) {
if (pos == 0) {
binding.uploadFront.visibility = View.GONE
binding.ivFrontLayer.setBackgroundColor(Color.parseColor("#99000000"))
binding.ivFrontTik.setBackgroundResource(R.drawable.svg_tik)
binding.mbUploadChangeFront.visibility = View.VISIBLE
frontUpdatedFileId = fileId
Picasso.get().load(url).into(binding.ivFront)
} else {
binding.uploadBack.visibility = View.GONE
binding.ivBackLayer.setBackgroundColor(Color.parseColor("#99000000"))
binding.ivBackTik.setBackgroundResource(R.drawable.svg_tik)
binding.mbUploadChangeBack.visibility = View.VISIBLE
backUpdatedFileId = fileId
Picasso.get().load(url).into(binding.ivBack)
}
for(i in listOfFullDocType.indices){
if(documentId == listOfFullDocType[i].DocumentId){
if(listOfFullDocType[i].DocumentType.contains("ARN",ignoreCase = true)){
Picasso.get().load(url).into(binding.ivARNUpload)
binding.tvUploadARNTitle.visibility = View.GONE
arnUpdatedFileId = fileId
break
}else if(listOfFullDocType[i].DocumentType.contains("EUIN",ignoreCase = true)){
Picasso.get().load(url).into(binding.ivEUINUpload)
binding.tvUploadEUINTitle.visibility = View.GONE
euinUpdatedFileId = fileId
break
}
}
}
}
}

+ 1
- 1
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt View File

@ -180,7 +180,7 @@ class OTPFragment : BaseFragment() {
fragment.arguments = bundle
replaceFragment(
addFragment(
activity as BaseActivity,
R.id.signUpContainer,
fragment,


+ 8
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt View File

@ -1,5 +1,7 @@
package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -33,5 +35,11 @@ class QuestionsFragment : BaseFragment() {
binding.header.ivBack.setOnClickListener{
(activity as SignUpActivity).onBackPressedDispatcher.onBackPressed()
}
binding.header.tvHelpCall.setOnClickListener{
val intent = Intent(Intent.ACTION_CALL);
intent.data = Uri.parse("tel:18001801818")
startActivity(intent)
}
}
}

+ 9
- 10
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt View File

@ -3,6 +3,7 @@ package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.app.Dialog
import android.content.Intent
import android.os.Bundle
import android.text.Editable
import android.text.InputFilter
@ -22,6 +23,7 @@ import com.nivesh.production.partnerOnBoarding.db.PreferenceManager
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.response.SendOTPResponse
import com.nivesh.production.partnerOnBoarding.model.response.ValidateOTPResponse
import com.nivesh.production.partnerOnBoarding.ui.activities.RegisterActivity
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import okhttp3.MediaType.Companion.toMediaType
@ -57,12 +59,6 @@ class SaveEAgreementFragment : BaseFragment() {
smsAPI()
}
(activity as SignUpActivity).viewModelOne.getSaveEAgreementMutableData.observe(
viewLifecycleOwner
) { response ->
}
(activity as SignUpActivity).viewModelOne.getSaveEAgreementMutableData.observe(
viewLifecycleOwner
) { response ->
@ -107,8 +103,13 @@ class SaveEAgreementFragment : BaseFragment() {
builder.setMessage(message)
builder.setCancelable(false)
if (activity != null) {
builder.setPositiveButton(getString(R.string.Ok)) { dialogInterface, _ ->
dialogInterface.dismiss()
builder.setPositiveButton(getString(R.string.Ok)) { _, _ ->
val openIntent = Intent(
(activity as SignUpActivity),
RegisterActivity::class.java
)
openIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
(activity as SignUpActivity).startActivity(openIntent)
}
}
builder.show()
@ -218,7 +219,6 @@ class SaveEAgreementFragment : BaseFragment() {
txtResendOTP.setOnClickListener{
if(dialog.isShowing) dialog.cancel()
}
btnSubmit.setOnClickListener {
@ -295,7 +295,6 @@ class SaveEAgreementFragment : BaseFragment() {
"",
(activity as SignUpActivity)
)
}
private fun smsAPI() {


+ 56
- 4
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt View File

@ -12,15 +12,18 @@ import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.core.widget.TextViewCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.google.android.material.button.MaterialButton
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.api.ApiClient
import com.nivesh.production.partnerOnBoarding.databinding.FragmentSignupBinding
import com.nivesh.production.partnerOnBoarding.db.PreferenceManager
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest
import com.nivesh.production.partnerOnBoarding.model.response.PartnerDetailResponse
import com.nivesh.production.partnerOnBoarding.model.response.PartnerResponse
import com.nivesh.production.partnerOnBoarding.model.response.ValidatePartnerResponse
import com.nivesh.production.partnerOnBoarding.providerfactory.OnBoardingModelProviderFactory
@ -29,6 +32,7 @@ import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidMobileNumber
import com.nivesh.production.partnerOnBoarding.util.Constants
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class SignUpFragment : BaseFragment() {
@ -107,7 +111,7 @@ class SignUpFragment : BaseFragment() {
(activity as SignUpActivity).viewModelOne.getValidatePartnerMutableData.observe(
viewLifecycleOwner
) { response ->
Log.e("check_res_login", response?.data.toString())
val validatePartnerResponse: ValidatePartnerResponse =
Gson().fromJson(
response?.data.toString(),
@ -118,7 +122,8 @@ class SignUpFragment : BaseFragment() {
if (validatePartnerResponse.Result.IsPartialRegistered) {
PreferenceManager(activity as SignUpActivity).setPartnerCode(
validatePartnerResponse.Result.PartnerCode)
setUpOTPFragment(validatePartnerResponse.Result.PartnerCode)
checkPartnerDetail(validatePartnerResponse.Result.PartnerCode)
} else {
val partnerRequest = PartnerRequest()
@ -137,6 +142,55 @@ class SignUpFragment : BaseFragment() {
Common.showDialogValidation((activity as SignUpActivity),validatePartnerResponse.Message)
}
}
(activity as SignUpActivity).viewModelOne.getPartnerDetailMutableData.observe(
viewLifecycleOwner
) { response ->
val partnerDetailResponse: PartnerDetailResponse =
Gson().fromJson(
response?.data.toString(),
PartnerDetailResponse::class.java
)
if(partnerDetailResponse.Status == getString(R.string.successText)){
if(partnerDetailResponse.Result.Step == 1){
setUpOTPFragment(PreferenceManager((activity as SignUpActivity)).getPartnerCode())
}else if(partnerDetailResponse.Result.Step != 1){
Log.e("check_otp_res", response?.data.toString())
val bundle = Bundle()
bundle.putString("mobile", partnerDetailResponse.Result.Mobile)
bundle.putString("arnType", arguments?.getString("arnType"))
bundle.putSerializable("partnerResponse",partnerDetailResponse)
var fragment = Fragment()
if (type == 4) {
when (partnerDetailResponse.Result.Step) {
2 -> fragment = GetStartedFragment()
3 -> fragment = AlmostThereFragment()
4 -> fragment = SaveEAgreementFragment()
}
} else if (type == 3) {
fragment = NewDistributorSignStepOne()
}
fragment.arguments = bundle
addFragment(
activity as BaseActivity,
R.id.signUpContainer,
fragment,
"GET STARTED",
true
)
}
}
}
}
private fun checkPartnerDetail(partnerCode: String) {
(activity as SignUpActivity).viewModelOne.getPartnerDetailData(
partnerCode,
Constants.accessKey,
(activity as SignUpActivity)
)
}
private fun setUpOTPFragment(partnerCode: String) {
@ -158,7 +212,6 @@ class SignUpFragment : BaseFragment() {
)
}
private fun validate(): Boolean {
return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText
Common.commonErrorMethod(
@ -182,5 +235,4 @@ class SignUpFragment : BaseFragment() {
return true
}
}
}

+ 10
- 3
app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt View File

@ -262,11 +262,18 @@ class Common {
val datePickerDialog = DatePickerDialog(
activity as SignUpActivity, { _, years, monthOfYear, dayOfMonth ->
var monthsCount = (monthOfYear+1)
preSelectedDate = if (monthsCount.toString().length == 1) {
years.toString().plus("-").plus("0".plus(monthOfYear)).plus("-").plus(dayOfMonth)
var selectedDay = if(dayOfMonth.toString().length == 1){
"0$dayOfMonth"
}else {
years.toString().plus("-").plus(monthOfYear).plus("-").plus(dayOfMonth)
dayOfMonth
}
var monthYear = if (monthsCount.toString().length == 1) {
"0".plus(monthOfYear)
}else {
monthOfYear
}
preSelectedDate = years.toString().plus("-").plus(monthYear).plus("-").plus(selectedDay)
edtDOB.setText(preSelectedDate)
edtDOB.setSelection(edtDOB.text.toString().length)
}, year, month, day


+ 3
- 0
app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt View File

@ -4,6 +4,9 @@ class Constants {
companion object {
const val BASE_URL = "http://3.109.121.6/api/"
const val privacyPolicyLink = "https://androidprivacypolicy.s3.ap-south-1.amazonaws.com/"
const val tcLink = "https://www.nivesh.com/en/terms-and-conditions"
const val maxFileSize: Double = 5.0
const val accessKey: String = "hcdCy0roNswTNTBaHZZdSemiKojB2yrH"
}
}

+ 71
- 4
app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt View File

@ -31,6 +31,46 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
}
}
val getPartnerCreationSaveMutableData: MutableLiveData<Resource<JsonObject>?> =
MutableLiveData()
fun getPartnerCreateSaveData(
requestBody: PartnerRequest,
token: String,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getPartnerCreationResponse(requestBody, token)
getPartnerCreationSaveMutableData.postValue(handleResponse(response))
}
}
val getPartnerCreationContinueMutableData: MutableLiveData<Resource<JsonObject>?> =
MutableLiveData()
fun getPartnerCreateContinueData(
requestBody: PartnerRequest,
token: String,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getPartnerCreationResponse(requestBody, token)
getPartnerCreationContinueMutableData.postValue(handleResponse(response))
}
}
val getPartnerDetailMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getPartnerDetailData(
partnerCode: String,
token: String,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getPartnerDetailResponse(partnerCode, token)
getPartnerDetailMutableData.postValue(handleResponse(response))
}
}
val getValidatePartnerMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getPartnerValidate(
validatePartnerRequest: ValidatePartnerRequest,
@ -55,7 +95,9 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
}
}
val getSendOTPSaveEAgreementMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
val getSendOTPSaveEAgreementMutableData: MutableLiveData<Resource<JsonObject>?> =
MutableLiveData()
fun getSaveEAgreementSendOTP(
sendOTPRequest: SendOTPRequest,
token: String,
@ -108,21 +150,35 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getDocumentTypeResponse(value,type)
val response = mainRepository.getDocumentTypeResponse(value, type)
getDocumentTypeMutableData.postValue(handleResponse(response))
}
}
val getDocumentTypeFullMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getDocumentTypeFull(
value: String,
type: String,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getDocumentTypeResponse(value, type)
getDocumentTypeFullMutableData.postValue(handleResponse(response))
}
}
val getDocumentUploadMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getDocumentUpload(
multipartBody: List<MultipartBody.Part>,
// multipartBody: List<MultipartBody.Part>,
multipartBody: MultipartBody.Part,
pc: Int,
pr: Int,
di: Int,
fileId: Int,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getDocumentUploadResponse(multipartBody,pc,pr,di)
val response = mainRepository.getDocumentUploadResponse(multipartBody, pc, pr, di,fileId)
getDocumentUploadMutableData.postValue(handleResponse(response))
}
}
@ -148,4 +204,15 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
getAllProductMutableData.postValue(handleResponse(response))
}
}
val getAreaDetailByPinMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getAreaDetailByPin(
pin: String,
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getAreaDetailByPinCode(pin)
getAreaDetailByPinMutableData.postValue(handleResponse(response))
}
}
}

+ 7
- 0
app/src/main/res/drawable/round_blue_solid.xml View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="@color/lightBlue1"/>
<corners
android:radius="@dimen/margin_2"/>
</shape>

+ 5
- 20
app/src/main/res/drawable/svg_close.xml View File

@ -1,20 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="50dp"
android:height="50dp"
android:viewportWidth="50"
android:viewportHeight="50">
<path
android:strokeColor="#ffffff"
android:strokeWidth="2"
android:pathData="M 25 1 C 38.2548339959 1 49 11.7451660041 49 25 C 49 38.2548339959 38.2548339959 49 25 49 C 11.7451660041 49 1 38.2548339959 1 25 C 1 11.7451660041 11.7451660041 1 25 1 Z" />
<path
android:strokeColor="#ffffff"
android:strokeWidth="2"
android:pathData="M 15.7071 14.2929 L 35.5061 34.0919" />
<path
android:strokeColor="#ffffff"
android:strokeWidth="2"
android:pathData="M 14.2929 34.2929 L 34.0919 14.4939" />
</vector>
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
</vector>

+ 10
- 3
app/src/main/res/layout/activity_register.xml View File

@ -73,7 +73,6 @@
app:layout_constraintStart_toEndOf="@+id/txtAccount"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnInvestor"
android:layout_width="match_parent"
@ -87,11 +86,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/txtAccount" />
<!-- android:layout_margin="@dimen/margin_30"-->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnDistributor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_30"
android:layout_marginLeft="@dimen/margin_30"
android:layout_marginRight="@dimen/margin_30"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_10"
android:text="@string/distributor"
android:textColor="@color/white"
android:theme="@style/Theme.redButton"
@ -104,7 +108,10 @@
android:id="@+id/btnReferrer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_30"
android:layout_marginLeft="@dimen/margin_30"
android:layout_marginRight="@dimen/margin_30"
android:layout_marginTop="@dimen/margin_10"
android:layout_marginBottom="@dimen/margin_10"
android:text="@string/referrer"
android:textColor="@color/white"
android:theme="@style/Theme.redButton"


+ 92
- 0
app/src/main/res/layout/dialog_t_c.xml View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="@dimen/margin_4"
app:cardElevation="0dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/margin_4"
android:layout_marginRight="@dimen/margin_4"
app:contentPadding="@dimen/margin_8"
app:cardBackgroundColor="@color/white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/layout_close"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/wvTitleTxt"
android:layout_marginTop="@dimen/margin_4"
android:layout_width="wrap_content"
android:textColor="@color/blue2"
android:textAllCaps="true"
android:text="@string/termsandconditions1"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_centerInParent="true"
tools:ignore="AllCaps" />
<TextView
android:layout_alignParentEnd="true"
android:id="@+id/txtCancel"
android:textSize="@dimen/text_size_12"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/svg_close"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/layout_close"
android:layout_above="@+id/layout_ok"
android:layout_centerInParent="true">
<WebView
android:id="@+id/webViewNeedHelp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"/>
</RelativeLayout>
<LinearLayout
android:id="@+id/layout_ok"
android:gravity="center"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<TextView
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:text="@string/Ok"
android:paddingBottom="@dimen/margin_6"
android:paddingTop="@dimen/margin_6"
android:paddingLeft="@dimen/margin_12"
android:paddingRight="@dimen/margin_12"
android:textColor="@color/white"
android:background="@drawable/round_blue_solid"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>

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

@ -4,6 +4,7 @@
xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
@ -84,58 +85,6 @@
</com.google.android.material.textfield.TextInputLayout>
<!-- Month -->
<!-- <com.google.android.material.textfield.TextInputLayout-->
<!-- android:id="@+id/tlMonth"-->
<!-- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"-->
<!-- android:layout_width="@dimen/margin_100"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/margin_5"-->
<!-- android:layout_marginTop="@dimen/margin_15"-->
<!-- android:hint="@string/month"-->
<!-- android:padding="@dimen/margin_3"-->
<!-- app:layout_constraintStart_toEndOf="@+id/tlDay"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/btnReferrer">-->
<!-- <com.google.android.material.textfield.TextInputEditText-->
<!-- android:id="@+id/edtMonth"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center"-->
<!-- android:digits="@string/number"-->
<!-- android:inputType="number"-->
<!-- android:textColorHint="@color/greyColor2"-->
<!-- android:textSize="@dimen/text_size_14"-->
<!-- tool:ignore="TextContrastCheck" />-->
<!-- </com.google.android.material.textfield.TextInputLayout>-->
<!-- Year -->
<!-- <com.google.android.material.textfield.TextInputLayout-->
<!-- android:id="@+id/tlYear"-->
<!-- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"-->
<!-- android:layout_width="@dimen/margin_150"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="@dimen/margin_5"-->
<!-- android:layout_marginTop="@dimen/margin_15"-->
<!-- android:hint="@string/year"-->
<!-- android:padding="@dimen/margin_3"-->
<!-- app:layout_constraintStart_toEndOf="@+id/tlDay"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/btnReferrer">-->
<!-- <com.google.android.material.textfield.TextInputEditText-->
<!-- android:id="@+id/edtYear"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center"-->
<!-- android:digits="@string/number"-->
<!-- android:inputType="number"-->
<!-- android:textColorHint="@color/greyColor2"-->
<!-- android:textSize="@dimen/text_size_14"-->
<!-- tool:ignore="TextContrastCheck" />-->
<!-- </com.google.android.material.textfield.TextInputLayout>-->
<!--Full Name -->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlFullName"
@ -294,7 +243,6 @@
</com.google.android.material.textfield.TextInputLayout>
<CheckBox
android:id="@+id/cbCheck"
android:layout_width="@dimen/margin_48"
@ -328,7 +276,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/byClicking" />
<TextView
android:id="@+id/tvPrivacyPolicy"
android:layout_width="wrap_content"
@ -405,5 +352,4 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnNext" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 53
- 52
app/src/main/res/layout/fragment_get_started.xml View File

@ -4,6 +4,7 @@
xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
@ -12,8 +13,8 @@
android:layout_height="match_parent"
android:fillViewport="true"
android:paddingStart="@dimen/margin_15"
android:paddingEnd="@dimen/margin_15"
android:paddingTop="@dimen/margin_15"
android:paddingEnd="@dimen/margin_15"
android:paddingBottom="@dimen/margin_120"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@ -82,9 +83,9 @@
android:layout_height="wrap_content"
android:inputType="number"
android:maxLength="7"
android:padding="@dimen/margin_15"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
android:padding="@dimen/margin_15"
tool:ignore="TextContrastCheck" />
</com.google.android.material.textfield.TextInputLayout>
@ -93,17 +94,17 @@
android:id="@+id/rlARNUpload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginTop="@dimen/margin_10"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/tlArnNumber">
<TextView
style="@style/semiBoldStyle"
android:id="@+id/tvUploadARN"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:text="@string/uploadArnCard" />
android:text="@string/uploadArnCard"
android:textColor="@color/black" />
<TextView
android:id="@+id/tvUploadFormat"
@ -112,30 +113,30 @@
android:layout_alignParentEnd="true"
android:text="@string/format_png_or_jpg" />
<RelativeLayout
android:id="@+id/rvARNUploadLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_5"
android:layout_below="@+id/tvUploadFormat"
android:background="@drawable/dot_rect">
<ImageView
android:id="@+id/ivARNUpload"
android:layout_width="@dimen/margin_130"
android:layout_height="@dimen/margin_90"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tvUploadARNTitle"
<RelativeLayout
android:id="@+id/rvARNUploadLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@color/lightBlue1"
android:layout_marginTop="@dimen/margin_10"
android:text="@string/upload" />
android:layout_below="@+id/tvUploadFormat"
android:layout_marginTop="@dimen/margin_5"
android:background="@drawable/dot_rect">
</RelativeLayout>
<ImageView
android:id="@+id/ivARNUpload"
android:layout_width="@dimen/margin_130"
android:layout_height="@dimen/margin_90"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tvUploadARNTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="@dimen/margin_10"
android:text="@string/upload"
android:textColor="@color/lightBlue1" />
</RelativeLayout>
</RelativeLayout>
@ -178,11 +179,11 @@
android:id="@+id/edtPassingAMFI"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none"
android:focusable="false"
android:drawableStart="@drawable/svg_cal"
android:drawablePadding="@dimen/margin_10"
android:focusable="false"
android:gravity="center_vertical"
android:inputType="none"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
@ -202,11 +203,11 @@
android:id="@+id/edtExpiryAMFI"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none"
android:focusable="false"
android:drawableStart="@drawable/svg_cal"
android:drawablePadding="@dimen/margin_10"
android:focusable="false"
android:gravity="center_vertical"
android:inputType="none"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
@ -228,8 +229,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="@string/panDigit"
android:maxLength="10"
android:inputType="textCapCharacters"
android:maxLength="10"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14"
tool:ignore="TextContrastCheck" />
@ -263,8 +264,8 @@
android:id="@+id/rlEUINUpload"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginTop="@dimen/margin_10"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/tlFullNamePanCard">
<com.google.android.material.textfield.TextInputLayout
@ -292,42 +293,42 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tlEUINName"
android:layout_marginTop="@dimen/margin_10"
android:hint="@string/euinNumberHint"
android:padding="@dimen/margin_3"
android:layout_below="@+id/tlEUINName">
android:padding="@dimen/margin_3">
<com.nivesh.production.partnerOnBoarding.util.maskedEditText.MaskedEditText
android:id="@+id/edtEUINNumberNF"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|start"
android:inputType="number"
android:maxEms="18"
android:gravity="top|start"
app:mask="#### / #### / ####"
android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
android:textSize="@dimen/text_size_14"
app:mask="#### / #### / ####" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
style="@style/semiBoldStyle"
android:id="@+id/tvUploadEUIN"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/uploadEUINCard"
android:textColor="@color/black"
android:layout_below="@+id/tlEUINNumberNF"
android:layout_marginTop="@dimen/margin_10"
android:layout_below="@+id/tlEUINNumberNF"/>
android:text="@string/uploadEUINCard"
android:textColor="@color/black" />
<TextView
android:id="@+id/tvUploadEUINFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tlEUINNumberNF"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_10"
android:text="@string/format_png_or_jpg"
android:layout_below="@+id/tlEUINNumberNF"/>
android:text="@string/format_png_or_jpg" />
<RelativeLayout
android:id="@+id/rvEUINUploadLayout"
@ -347,8 +348,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@color/lightBlue1"
android:text="@string/upload" />
android:text="@string/upload"
android:textColor="@color/lightBlue1" />
</RelativeLayout>
@ -370,7 +371,7 @@
android:layout_marginStart="@dimen/margin_8"
android:layout_marginTop="@dimen/margin_25"
android:padding="@dimen/margin_4"
android:text="Add ADDRESS PROOF"
android:text="@string/add_address_proof"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:textStyle="bold"
@ -398,7 +399,7 @@
android:layout_marginStart="@dimen/margin_8"
android:layout_marginTop="@dimen/margin_3"
android:padding="@dimen/margin_4"
android:text="Choose the document type"
android:text="@string/choose_the_document_type"
android:textColor="@color/black"
android:textSize="@dimen/text_size_14"
android:textStyle="bold"
@ -623,7 +624,7 @@
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/btnNext"
app:layout_constraintStart_toStartOf="parent"/>
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnNext"
@ -644,12 +645,12 @@
app:layout_constraintStart_toEndOf="@+id/saveDraft" />
<TextView
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/margin_4"
android:text="@string/up_next_address"
android:textColor="@color/textColor1"
style="@style/regularStyle"
android:textSize="@dimen/text_size_14"
app:layout_constraintEnd_toEndOf="@+id/btnNext"
app:layout_constraintRight_toRightOf="parent"
@ -676,10 +677,10 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:layout_below="@+id/pbInternal"
android:layout_centerHorizontal="true"
android:text="@string/pleaseWait"/>
android:text="@string/pleaseWait"
android:textColor="@color/white" />
</RelativeLayout>

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

@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView


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

@ -350,10 +350,16 @@
<string name="successText">success</string>
<string name="aadhaarText">Aadhaar</string>
<string name="timerMsg">minutes are remaining to complete the process</string>
<string name="associateText">Associate</string>
<string name="advisory">advisory</string>
<!-- Associate-->
<string name="associateText">4</string>
<!-- advisory-->
<string name="advisory">3</string>
<string name="join_nivesh">Join Nivesh</string>
<string name="apply_now">APPLY NOW</string>
<string name="pleaseWait">Please Wait...</string>
<string name="privacy_policy">Privacy Policy</string>
<string name="termsandconditions1"><![CDATA[terms &amp; conditions]]></string>
<string name="choose_the_document_type">Choose the document type</string>
<string name="add_address_proof">Add ADDRESS PROOF</string>
</resources>

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

@ -11,6 +11,7 @@
<color name="green">#02B92D</color>
<color name="red"> #E9161E</color>
<color name="blue">#1F5ACE</color>
<color name="blue2">#004783</color>
<color name="transparent">#00000000</color>
<color name="transparent2">#99000000</color>
<color name="lightBlue">#5077FF</color>


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

@ -363,10 +363,16 @@
<string name="successText">success</string>
<string name="aadhaarText">Aadhaar</string>
<string name="timerMsg">minutes are remaining to complete the process</string>
<string name="associateText">Associate</string>
<string name="advisory">advisory</string>
<!-- Associate-->
<string name="associateText">4</string>
<!-- advisory-->
<string name="advisory">3</string>
<string name="join_nivesh">Join Nivesh</string>
<string name="apply_now">APPLY NOW</string>
<string name="pleaseWait">Please Wait...</string>
<string name="privacy_policy">Privacy Policy</string>
<string name="termsandconditions1"><![CDATA[terms &amp; conditions]]></string>
<string name="choose_the_document_type">Choose the document type</string>
<string name="add_address_proof">Add ADDRESS PROOF</string>
</resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.