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 // Navigation Components
implementation "androidx.navigation:navigation-fragment-ktx:2.5.3" implementation "androidx.navigation:navigation-fragment-ktx:2.5.3"
implementation "androidx.navigation:navigation-ui-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_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-feature <uses-feature
android:name="android.hardware.camera" 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.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest
import com.nivesh.production.partnerOnBoarding.model.response.PartnerDetailResponse
import okhttp3.MultipartBody import okhttp3.MultipartBody
import okhttp3.RequestBody import okhttp3.RequestBody
import retrofit2.Response import retrofit2.Response
@ -15,6 +16,12 @@ interface ApiInterface {
@POST("Partner/CreatePartner") @POST("Partner/CreatePartner")
suspend fun postPartnerCreation(@Body partnerRequest: PartnerRequest): Response<JsonObject> 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") @POST("Partner/ValidatePartner")
suspend fun postPartnerValidate(@Body validatePartnerRequest: ValidatePartnerRequest): Response<JsonObject> suspend fun postPartnerValidate(@Body validatePartnerRequest: ValidatePartnerRequest): Response<JsonObject>
@ -34,15 +41,20 @@ interface ApiInterface {
suspend fun getPANDetail(@Query("PAN") value: String): Response<JsonObject> suspend fun getPANDetail(@Query("PAN") value: String): Response<JsonObject>
@GET("User/GetAllDocumentsType") @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 @Multipart
@POST("Partner/DocumentsUpload") @POST("Partner/DocumentsUpload")
suspend fun getUploadDocument( suspend fun getUploadDocument(
@Part multiPartBody: List<MultipartBody.Part>,
// @Part multiPartBody: List<MultipartBody.Part>,
@Part multiPartBody: MultipartBody.Part,
@Part("PartnerCode") partnerCode: Int, @Part("PartnerCode") partnerCode: Int,
@Part("PartnerRole") partnerRole: Int, @Part("PartnerRole") partnerRole: Int,
@Part("DocumentId") documentId: Int
@Part("DocumentId") documentId: Int,
@Part("FileId") fileId: Int
): Response<JsonObject> ): Response<JsonObject>
@POST("Partner/SaveEAgreement") @POST("Partner/SaveEAgreement")
@ -50,4 +62,7 @@ interface ApiInterface {
@GET("User/GetAllProduct") @GET("User/GetAllProduct")
suspend fun getAllProduct(): Response<JsonObject> 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 package com.nivesh.production.partnerOnBoarding.model
data class Data( 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) = suspend fun getPartnerCreationResponse(requestBody: PartnerRequest, token: String) =
apiInterface.postPartnerCreation(requestBody) apiInterface.postPartnerCreation(requestBody)
suspend fun getPartnerDetailResponse(value: String, token: String) =
apiInterface.getPartnerDetail(value,token)
suspend fun getValidatePartnerResponse(validatePartnerRequest: ValidatePartnerRequest) = suspend fun getValidatePartnerResponse(validatePartnerRequest: ValidatePartnerRequest) =
apiInterface.postPartnerValidate(validatePartnerRequest) apiInterface.postPartnerValidate(validatePartnerRequest)
@ -33,12 +36,15 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun getDocumentTypeResponse(value: String,type: String) = suspend fun getDocumentTypeResponse(value: String,type: String) =
apiInterface.getDocumentType(value,type) 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) = suspend fun getSaveEAgreement(requestBody: RequestBody, token: String) =
apiInterface.postSaveEAgreement(requestBody) apiInterface.postSaveEAgreement(requestBody)
suspend fun getAllProduct() = suspend fun getAllProduct() =
apiInterface.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 { binding.btnDistributor.setOnClickListener {
commonMethod(4, "advisory")
commonMethod(4, "3")//advisory
} }
binding.btnReferrer.setOnClickListener { binding.btnReferrer.setOnClickListener {
commonMethod(3, "Associate")
commonMethod(3, "4")//associate
} }
binding.imgInfo.setOnClickListener { 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 package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.annotation.SuppressLint
import android.app.Dialog
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.Editable import android.text.Editable
@ -8,6 +10,10 @@ import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider 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.db.PreferenceManager
import com.nivesh.production.partnerOnBoarding.model.DataX import com.nivesh.production.partnerOnBoarding.model.DataX
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest 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.PANResponse
import com.nivesh.production.partnerOnBoarding.model.response.PartnerResponse import com.nivesh.production.partnerOnBoarding.model.response.PartnerResponse
import com.nivesh.production.partnerOnBoarding.providerfactory.OnBoardingModelProviderFactory 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
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidPinCode import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidPinCode
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogValidation 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 import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class AlmostThereFragment : BaseFragment() { class AlmostThereFragment : BaseFragment() {
@ -179,11 +189,13 @@ class AlmostThereFragment : BaseFragment() {
} }
binding.tvTermsAndCondition.setOnClickListener { 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 { binding.tvAgreement.setOnClickListener {
} }
@ -204,7 +216,7 @@ class AlmostThereFragment : BaseFragment() {
partnerRequest.Mobile = arguments?.getString("mobile")!! partnerRequest.Mobile = arguments?.getString("mobile")!!
partnerRequest.OtherProductName = "" partnerRequest.OtherProductName = ""
partnerRequest.PartnerCode = PreferenceManager((activity as SignUpActivity)).getPartnerCode() partnerRequest.PartnerCode = PreferenceManager((activity as SignUpActivity)).getPartnerCode()
partnerRequest.PartnerType = "advisory"
partnerRequest.PartnerType = getString(R.string.advisory)
partnerRequest.DateOfIncorporation = Common.getDateFromTimeMills(System.currentTimeMillis()) partnerRequest.DateOfIncorporation = Common.getDateFromTimeMills(System.currentTimeMillis())
Log.e("check_partner", partnerRequest.toString()) Log.e("check_partner", partnerRequest.toString())
apiPartnerCreation(partnerRequest) apiPartnerCreation(partnerRequest)
@ -244,6 +256,71 @@ class AlmostThereFragment : BaseFragment() {
showDialogValidation((activity as SignUpActivity),res.Message) 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) { private fun apiPartnerCreation(partnerRequest: PartnerRequest) {
@ -320,5 +397,4 @@ class AlmostThereFragment : BaseFragment() {
return false return false
} else return binding.cbCheck.isChecked } 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.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.Dialog
import android.content.DialogInterface import android.content.DialogInterface
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.database.Cursor import android.database.Cursor
@ -33,12 +32,14 @@ import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.core.view.isVisible
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.nivesh.production.partnerOnBoarding.BuildConfig import com.nivesh.production.partnerOnBoarding.BuildConfig
import com.nivesh.production.partnerOnBoarding.R import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.api.ApiClient 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.BaseActivity
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.* 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.getFileExtension
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidIndividualPan 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.showDialogValidation
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogWithTwoButtons import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogWithTwoButtons
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.maxFileSize import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.maxFileSize
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
import com.squareup.picasso.Picasso
import okhttp3.MediaType.Companion.toMediaType import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody import okhttp3.MultipartBody
@ -86,14 +89,26 @@ class GetStartedFragment : BaseFragment() {
private var panFileExt: String? = "" private var panFileExt: String? = ""
private var docValue: String = "" private var docValue: String = ""
private var isFront: Boolean = false 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 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 imageSelectedList = ArrayList<ImageSelectedModel>()
private var imageSelectedArnEuinList = ArrayList<ImageSelectedModel>() private var imageSelectedArnEuinList = ArrayList<ImageSelectedModel>()
private var arnList = ArrayList<DataX>() private var arnList = ArrayList<DataX>()
private var arnData: DataX? = null private var arnData: DataX? = null
private lateinit var panRes: PANResponse 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( private val permissions = arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
@ -156,22 +171,23 @@ class GetStartedFragment : BaseFragment() {
)[OnBoardingViewModel::class.java] )[OnBoardingViewModel::class.java]
var docType = "I" var docType = "I"
if (arguments?.getString("arnType").equals("Associate", true)) {
if (arguments?.getString("arnType").equals(getString(R.string.associateText), true)) {
commonMethodForVisibility(View.GONE) commonMethodForVisibility(View.GONE)
docType = "N" docType = "N"
} else if (arguments?.getString("arnType").equals("advisory", true)) {
} else if (arguments?.getString("arnType").equals(getString(R.string.advisory), true)) {
commonMethodForVisibility(View.VISIBLE) commonMethodForVisibility(View.VISIBLE)
docType = "I" docType = "I"
} }
documentTypeFullAPI()
documentTypeAPI(docType) documentTypeAPI(docType)
binding.edtPassingAMFI.setOnClickListener { binding.edtPassingAMFI.setOnClickListener {
Common.datePicker(activity as SignUpActivity, binding.edtPassingAMFI,false)
Common.datePicker(activity as SignUpActivity, binding.edtPassingAMFI, false)
} }
binding.edtExpiryAMFI.setOnClickListener { binding.edtExpiryAMFI.setOnClickListener {
Common.datePicker(activity as SignUpActivity, binding.edtExpiryAMFI,true)
Common.datePicker(activity as SignUpActivity, binding.edtExpiryAMFI, true)
} }
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
@ -194,24 +210,26 @@ class GetStartedFragment : BaseFragment() {
override fun afterTextChanged(s: Editable?) {} 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 beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
Common.removeError(binding.tlEUINNumber) Common.removeError(binding.tlEUINNumber)
} }
override fun afterTextChanged(s: Editable?) {} 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 beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
Common.removeError(binding.tlEUINNumberNF) Common.removeError(binding.tlEUINNumberNF)
} }
override fun afterTextChanged(s: Editable?) {} override fun afterTextChanged(s: Editable?) {}
}) })
binding.ivInfo.setOnClickListener { binding.ivInfo.setOnClickListener {
replaceFragment(
addFragment(
activity as BaseActivity, activity as BaseActivity,
R.id.signUpContainer, R.id.signUpContainer,
QuestionsFragment(), 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 { binding.btnNext.setOnClickListener {
apiUploadDocument() apiUploadDocument()
if (arguments?.getString("arnType").equals(getString(R.string.associateText), false)) { if (arguments?.getString("arnType").equals(getString(R.string.associateText), false)) {
if(validationAssociate()) {
if (validationAssociate()) {
val pt = PartnerRequest() val pt = PartnerRequest()
pt.Name = binding.edtFullNamePanCard.text.toString() pt.Name = binding.edtFullNamePanCard.text.toString()
pt.PAN = binding.edtPanNumber.text.toString() pt.PAN = binding.edtPanNumber.text.toString()
@ -258,14 +318,14 @@ class GetStartedFragment : BaseFragment() {
val fragment = AlmostThereFragment() val fragment = AlmostThereFragment()
val bundle = Bundle() val bundle = Bundle()
bundle.putSerializable("InputValue", pt) bundle.putSerializable("InputValue", pt)
if(arnData!=null)
bundle.putSerializable("arnData", arnData)
if (arnData != null)
bundle.putSerializable("arnData", arnData)
bundle.putSerializable("panData", panRes) bundle.putSerializable("panData", panRes)
bundle.putString("mobile", arguments?.getString("mobile")) bundle.putString("mobile", arguments?.getString("mobile"))
bundle.putString("arnType",arguments?.getString("arnType"))
bundle.putString("arnType", arguments?.getString("arnType"))
fragment.arguments = bundle fragment.arguments = bundle
replaceFragment(
addFragment(
activity as BaseActivity, activity as BaseActivity,
R.id.signUpContainer, R.id.signUpContainer,
fragment, 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()) { if (validationAdvisory()) {
val pt = PartnerRequest()
pt.ARNNumber = binding.edtArnNumber.text.toString() pt.ARNNumber = binding.edtArnNumber.text.toString()
if (binding.edtEUINNumber.visibility == View.VISIBLE) if (binding.edtEUINNumber.visibility == View.VISIBLE)
@ -287,30 +349,20 @@ class GetStartedFragment : BaseFragment() {
pt.Name = binding.edtFullNamePanCard.text.toString() pt.Name = binding.edtFullNamePanCard.text.toString()
pt.PAN = binding.edtPanNumber.text.toString() pt.PAN = binding.edtPanNumber.text.toString()
pt.DateOfPassingAMFICertificate = binding.edtPassingAMFI.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 { binding.uploadFront.setOnClickListener {
actionType = mainPANUpload actionType = mainPANUpload
isFront = true
setImageUploadType(front = true, back = false, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) { if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage() selectImage()
} else { } else {
@ -323,9 +375,11 @@ class GetStartedFragment : BaseFragment() {
binding.mbUploadChangeFront.setOnClickListener { binding.mbUploadChangeFront.setOnClickListener {
actionType = mainPANUpload actionType = mainPANUpload
isFront = true
setImageUploadType(front = true, back = false, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) { if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage() selectImage()
} else if (binding.ivFront.drawable != null) {
selectImage()
} else { } else {
showDialogValidation( showDialogValidation(
activity as SignUpActivity, activity as SignUpActivity,
@ -336,9 +390,11 @@ class GetStartedFragment : BaseFragment() {
binding.mbUploadChangeBack.setOnClickListener { binding.mbUploadChangeBack.setOnClickListener {
actionType = mainPANUpload actionType = mainPANUpload
isFront = false
setImageUploadType(front = false, back = true, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) { if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage() selectImage()
} else if (binding.ivBack.drawable != null) {
selectImage()
} else { } else {
showDialogValidation( showDialogValidation(
activity as SignUpActivity, activity as SignUpActivity,
@ -349,7 +405,7 @@ class GetStartedFragment : BaseFragment() {
binding.uploadBack.setOnClickListener { binding.uploadBack.setOnClickListener {
actionType = mainPANUpload actionType = mainPANUpload
isFront = false
setImageUploadType(front = false, back = true, aRN = false, eUIN = false)
if (docValue.isNotBlank() && docValue.isNotEmpty()) { if (docValue.isNotBlank() && docValue.isNotEmpty()) {
selectImage() selectImage()
} else { } else {
@ -362,11 +418,13 @@ class GetStartedFragment : BaseFragment() {
binding.rlARNUpload.setOnClickListener { binding.rlARNUpload.setOnClickListener {
actionType = mainARNPhotoUpload actionType = mainARNPhotoUpload
setImageUploadType(front = false, back = false, aRN = true, eUIN = false)
selectImage() selectImage()
} }
binding.rlEUINUpload.setOnClickListener { binding.rlEUINUpload.setOnClickListener {
actionType = mainEUINPhotoUpload actionType = mainEUINPhotoUpload
setImageUploadType(front = false, back = false, aRN = false, eUIN = true)
selectImage() selectImage()
} }
@ -377,11 +435,14 @@ class GetStartedFragment : BaseFragment() {
if (arguments?.getString("arnType").equals(getString(R.string.advisory), true)) { if (arguments?.getString("arnType").equals(getString(R.string.advisory), true)) {
if (!isValidIndividualPan(s.toString().trim())) { if (!isValidIndividualPan(s.toString().trim())) {
binding.rlEUINUpload.visibility = View.GONE binding.rlEUINUpload.visibility = View.GONE
binding.edtEUINNumber.visibility = View.VISIBLE
binding.tlEUINNumber.visibility = View.VISIBLE
} else { } else {
binding.rlEUINUpload.visibility = View.VISIBLE binding.rlEUINUpload.visibility = View.VISIBLE
if (!TextUtils.isEmpty(binding.edtEUINNumber.text)) { if (!TextUtils.isEmpty(binding.edtEUINNumber.text)) {
binding.edtEUINNumberNF.setText(binding.edtEUINNumber.text.toString()) binding.edtEUINNumberNF.setText(binding.edtEUINNumber.text.toString())
binding.edtEUINNumber.visibility = View.GONE 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) { private fun commonMethodForVisibility(visibility: Int) {
binding.edtArnNumber.visibility = visibility binding.edtArnNumber.visibility = visibility
binding.tlArnNumber.visibility = visibility binding.tlArnNumber.visibility = visibility
binding.edtEUINNumber.visibility = visibility binding.edtEUINNumber.visibility = visibility
binding.tlEUINNumber.visibility = visibility
binding.tlArnNumber.visibility = visibility binding.tlArnNumber.visibility = visibility
binding.edtPassingAMFI.visibility = visibility binding.edtPassingAMFI.visibility = visibility
binding.tlPassingAMFI.visibility = visibility binding.tlPassingAMFI.visibility = visibility
@ -468,38 +714,29 @@ class GetStartedFragment : BaseFragment() {
binding.tlExpiryAMFI.visibility = visibility 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 "3",//Currently it is static
docType,
// Constants.BASE_URL_COMMON + "User/GetAllDocumentsType",
"",
(activity as SignUpActivity) (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) { } catch (e: Exception) {
@ -616,17 +853,13 @@ class GetStartedFragment : BaseFragment() {
binding.tlPanNumber, binding.tlPanNumber,
getString(R.string.pleaseArnNum) getString(R.string.pleaseArnNum)
) )
}else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
} else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
commonErrorMethod( commonErrorMethod(
binding.edtFullNamePanCard, binding.edtFullNamePanCard,
binding.tlFullNamePanCard, binding.tlFullNamePanCard,
getString(R.string.pleaseArnNum) 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 { private fun validationAdvisory(): Boolean {
@ -636,13 +869,16 @@ class GetStartedFragment : BaseFragment() {
binding.tlArnNumber, binding.tlArnNumber,
getString(R.string.pleaseArnNum) 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( commonErrorMethod(
binding.edtEUINNumber, binding.edtEUINNumber,
binding.tlEUINNumber, binding.tlEUINNumber,
getString(R.string.pleaseEuinNum) 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( commonErrorMethod(
binding.edtEUINNumberNF, binding.edtEUINNumberNF,
@ -667,25 +903,39 @@ class GetStartedFragment : BaseFragment() {
binding.tlPanNumber, binding.tlPanNumber,
getString(R.string.emptyPAN) getString(R.string.emptyPAN)
) )
}else if (!isPanVerify) {
} else if (!isPanVerify) {
commonErrorMethod( commonErrorMethod(
binding.edtPanNumber, binding.edtPanNumber,
binding.tlPanNumber, binding.tlPanNumber,
getString(R.string.invalidPAN) getString(R.string.invalidPAN)
) )
}
else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
} else if (binding.edtFullNamePanCard.text.toString().isEmpty()) {
commonErrorMethod( commonErrorMethod(
binding.edtFullNamePanCard, binding.edtFullNamePanCard,
binding.tlFullNamePanCard, binding.tlFullNamePanCard,
getString(R.string.full_name_as_on_pan_card) 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 { } else {
true 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 { private fun getTmpFileUri(): Uri {
val tmpFile = val tmpFile =
File.createTempFile("tmp_image_file", ".png", requireActivity().cacheDir).apply { File.createTempFile("tmp_image_file", ".png", requireActivity().cacheDir).apply {
@ -876,12 +1139,15 @@ class GetStartedFragment : BaseFragment() {
if (type == "c") { if (type == "c") {
encodedPANBase64(fileExtension) encodedPANBase64(fileExtension)
if (isFront) imageSelectedList.add(ImageSelectedModel(0, fileExtension)) if (isFront) imageSelectedList.add(ImageSelectedModel(0, fileExtension))
else imageSelectedList.add(ImageSelectedModel(0, fileExtension))
else imageSelectedList.add(ImageSelectedModel(1, fileExtension))
} else { } else {
val bitmap: Bitmap = val bitmap: Bitmap =
MediaStore.Images.Media.getBitmap(context?.contentResolver, uri) 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 file = File(fileDir, fileName.plus(".png"))
val fOut = FileOutputStream(file) val fOut = FileOutputStream(file)
@ -891,7 +1157,7 @@ class GetStartedFragment : BaseFragment() {
fOut.close() fOut.close()
if (file.exists()) encodedPANBase64(file) 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)) else imageSelectedList.add(ImageSelectedModel(1, file))
Log.e("check_panString", panString + "\n" + bitmap.toString()) Log.e("check_panString", panString + "\n" + bitmap.toString())
} }
@ -978,83 +1244,62 @@ class GetStartedFragment : BaseFragment() {
private fun apiUploadDocument() { private fun apiUploadDocument() {
if (imageSelectedList != null && imageSelectedList.size != 0) { 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 { private fun prepareImagePart(file: File, partName: String): MultipartBody.Part {
val requestBody: RequestBody = val requestBody: RequestBody =
file.asRequestBody("application/octet-stream".toMediaTypeOrNull()) file.asRequestBody("application/octet-stream".toMediaTypeOrNull())
@ -1080,4 +1325,38 @@ class GetStartedFragment : BaseFragment() {
binding.ivBack.setImageURI(uri) 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 fragment.arguments = bundle
replaceFragment(
addFragment(
activity as BaseActivity, activity as BaseActivity,
R.id.signUpContainer, R.id.signUpContainer,
fragment, 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 package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.content.Intent
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -33,5 +35,11 @@ class QuestionsFragment : BaseFragment() {
binding.header.ivBack.setOnClickListener{ binding.header.ivBack.setOnClickListener{
(activity as SignUpActivity).onBackPressedDispatcher.onBackPressed() (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.annotation.SuppressLint
import android.app.AlertDialog import android.app.AlertDialog
import android.app.Dialog import android.app.Dialog
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.Editable import android.text.Editable
import android.text.InputFilter 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.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.response.SendOTPResponse import com.nivesh.production.partnerOnBoarding.model.response.SendOTPResponse
import com.nivesh.production.partnerOnBoarding.model.response.ValidateOTPResponse 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.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common import com.nivesh.production.partnerOnBoarding.util.Common
import okhttp3.MediaType.Companion.toMediaType import okhttp3.MediaType.Companion.toMediaType
@ -57,12 +59,6 @@ class SaveEAgreementFragment : BaseFragment() {
smsAPI() smsAPI()
} }
(activity as SignUpActivity).viewModelOne.getSaveEAgreementMutableData.observe(
viewLifecycleOwner
) { response ->
}
(activity as SignUpActivity).viewModelOne.getSaveEAgreementMutableData.observe( (activity as SignUpActivity).viewModelOne.getSaveEAgreementMutableData.observe(
viewLifecycleOwner viewLifecycleOwner
) { response -> ) { response ->
@ -107,8 +103,13 @@ class SaveEAgreementFragment : BaseFragment() {
builder.setMessage(message) builder.setMessage(message)
builder.setCancelable(false) builder.setCancelable(false)
if (activity != null) { 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() builder.show()
@ -218,7 +219,6 @@ class SaveEAgreementFragment : BaseFragment() {
txtResendOTP.setOnClickListener{ txtResendOTP.setOnClickListener{
if(dialog.isShowing) dialog.cancel() if(dialog.isShowing) dialog.cancel()
} }
btnSubmit.setOnClickListener { btnSubmit.setOnClickListener {
@ -295,7 +295,6 @@ class SaveEAgreementFragment : BaseFragment() {
"", "",
(activity as SignUpActivity) (activity as SignUpActivity)
) )
} }
private fun smsAPI() { 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 android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.widget.TextViewCompat import androidx.core.widget.TextViewCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButton
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.nivesh.production.partnerOnBoarding.R import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.api.ApiClient import com.nivesh.production.partnerOnBoarding.api.ApiClient
import com.nivesh.production.partnerOnBoarding.databinding.FragmentSignupBinding import com.nivesh.production.partnerOnBoarding.databinding.FragmentSignupBinding
import com.nivesh.production.partnerOnBoarding.db.PreferenceManager import com.nivesh.production.partnerOnBoarding.db.PreferenceManager
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest 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.PartnerResponse
import com.nivesh.production.partnerOnBoarding.model.response.ValidatePartnerResponse import com.nivesh.production.partnerOnBoarding.model.response.ValidatePartnerResponse
import com.nivesh.production.partnerOnBoarding.providerfactory.OnBoardingModelProviderFactory 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.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidMobileNumber import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidMobileNumber
import com.nivesh.production.partnerOnBoarding.util.Constants
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class SignUpFragment : BaseFragment() { class SignUpFragment : BaseFragment() {
@ -107,7 +111,7 @@ class SignUpFragment : BaseFragment() {
(activity as SignUpActivity).viewModelOne.getValidatePartnerMutableData.observe( (activity as SignUpActivity).viewModelOne.getValidatePartnerMutableData.observe(
viewLifecycleOwner viewLifecycleOwner
) { response -> ) { response ->
Log.e("check_res_login", response?.data.toString())
val validatePartnerResponse: ValidatePartnerResponse = val validatePartnerResponse: ValidatePartnerResponse =
Gson().fromJson( Gson().fromJson(
response?.data.toString(), response?.data.toString(),
@ -118,7 +122,8 @@ class SignUpFragment : BaseFragment() {
if (validatePartnerResponse.Result.IsPartialRegistered) { if (validatePartnerResponse.Result.IsPartialRegistered) {
PreferenceManager(activity as SignUpActivity).setPartnerCode( PreferenceManager(activity as SignUpActivity).setPartnerCode(
validatePartnerResponse.Result.PartnerCode) validatePartnerResponse.Result.PartnerCode)
setUpOTPFragment(validatePartnerResponse.Result.PartnerCode)
checkPartnerDetail(validatePartnerResponse.Result.PartnerCode)
} else { } else {
val partnerRequest = PartnerRequest() val partnerRequest = PartnerRequest()
@ -137,6 +142,55 @@ class SignUpFragment : BaseFragment() {
Common.showDialogValidation((activity as SignUpActivity),validatePartnerResponse.Message) 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) { private fun setUpOTPFragment(partnerCode: String) {
@ -158,7 +212,6 @@ class SignUpFragment : BaseFragment() {
) )
} }
private fun validate(): Boolean { private fun validate(): Boolean {
return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText
Common.commonErrorMethod( Common.commonErrorMethod(
@ -182,5 +235,4 @@ class SignUpFragment : BaseFragment() {
return true 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( val datePickerDialog = DatePickerDialog(
activity as SignUpActivity, { _, years, monthOfYear, dayOfMonth -> activity as SignUpActivity, { _, years, monthOfYear, dayOfMonth ->
var monthsCount = (monthOfYear+1) 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 { }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.setText(preSelectedDate)
edtDOB.setSelection(edtDOB.text.toString().length) edtDOB.setSelection(edtDOB.text.toString().length)
}, year, month, day }, 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 { companion object {
const val BASE_URL = "http://3.109.121.6/api/" 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 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() val getValidatePartnerMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getPartnerValidate( fun getPartnerValidate(
validatePartnerRequest: ValidatePartnerRequest, 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( fun getSaveEAgreementSendOTP(
sendOTPRequest: SendOTPRequest, sendOTPRequest: SendOTPRequest,
token: String, token: String,
@ -108,21 +150,35 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity activity: Activity
) = viewModelScope.launch(handleError(activity)) { ) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) { if (Common.isNetworkAvailable(activity)) {
val response = mainRepository.getDocumentTypeResponse(value,type)
val response = mainRepository.getDocumentTypeResponse(value, type)
getDocumentTypeMutableData.postValue(handleResponse(response)) 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() val getDocumentUploadMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getDocumentUpload( fun getDocumentUpload(
multipartBody: List<MultipartBody.Part>,
// multipartBody: List<MultipartBody.Part>,
multipartBody: MultipartBody.Part,
pc: Int, pc: Int,
pr: Int, pr: Int,
di: Int, di: Int,
fileId: Int,
activity: Activity activity: Activity
) = viewModelScope.launch(handleError(activity)) { ) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(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)) getDocumentUploadMutableData.postValue(handleResponse(response))
} }
} }
@ -148,4 +204,15 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
getAllProductMutableData.postValue(handleResponse(response)) 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_constraintStart_toEndOf="@+id/txtAccount"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnInvestor" android:id="@+id/btnInvestor"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -87,11 +86,16 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/txtAccount" /> app:layout_constraintTop_toBottomOf="@id/txtAccount" />
<!-- android:layout_margin="@dimen/margin_30"-->
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnDistributor" android:id="@+id/btnDistributor"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" 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:text="@string/distributor"
android:textColor="@color/white" android:textColor="@color/white"
android:theme="@style/Theme.redButton" android:theme="@style/Theme.redButton"
@ -104,7 +108,10 @@
android:id="@+id/btnReferrer" android:id="@+id/btnReferrer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" 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:text="@string/referrer"
android:textColor="@color/white" android:textColor="@color/white"
android:theme="@style/Theme.redButton" 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" xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
@ -84,58 +85,6 @@
</com.google.android.material.textfield.TextInputLayout> </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 --> <!--Full Name -->
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tlFullName" android:id="@+id/tlFullName"
@ -294,7 +243,6 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<CheckBox <CheckBox
android:id="@+id/cbCheck" android:id="@+id/cbCheck"
android:layout_width="@dimen/margin_48" android:layout_width="@dimen/margin_48"
@ -328,7 +276,6 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/byClicking" /> app:layout_constraintTop_toBottomOf="@id/byClicking" />
<TextView <TextView
android:id="@+id/tvPrivacyPolicy" android:id="@+id/tvPrivacyPolicy"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -405,5 +352,4 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnNext" /> app:layout_constraintTop_toBottomOf="@+id/btnNext" />
</androidx.constraintlayout.widget.ConstraintLayout> </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" xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
@ -12,8 +13,8 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true" android:fillViewport="true"
android:paddingStart="@dimen/margin_15" android:paddingStart="@dimen/margin_15"
android:paddingEnd="@dimen/margin_15"
android:paddingTop="@dimen/margin_15" android:paddingTop="@dimen/margin_15"
android:paddingEnd="@dimen/margin_15"
android:paddingBottom="@dimen/margin_120" android:paddingBottom="@dimen/margin_120"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -82,9 +83,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:inputType="number" android:inputType="number"
android:maxLength="7" android:maxLength="7"
android:padding="@dimen/margin_15"
android:textColorHint="@color/greyColor2" android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" android:textSize="@dimen/text_size_14"
android:padding="@dimen/margin_15"
tool:ignore="TextContrastCheck" /> tool:ignore="TextContrastCheck" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
@ -93,17 +94,17 @@
android:id="@+id/rlARNUpload" android:id="@+id/rlARNUpload"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginTop="@dimen/margin_10" android:layout_marginTop="@dimen/margin_10"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/tlArnNumber"> app:layout_constraintTop_toBottomOf="@+id/tlArnNumber">
<TextView <TextView
style="@style/semiBoldStyle"
android:id="@+id/tvUploadARN" android:id="@+id/tvUploadARN"
style="@style/semiBoldStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/black"
android:text="@string/uploadArnCard" />
android:text="@string/uploadArnCard"
android:textColor="@color/black" />
<TextView <TextView
android:id="@+id/tvUploadFormat" android:id="@+id/tvUploadFormat"
@ -112,30 +113,30 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:text="@string/format_png_or_jpg" /> 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_width="wrap_content"
android:layout_height="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> </RelativeLayout>
@ -178,11 +179,11 @@
android:id="@+id/edtPassingAMFI" android:id="@+id/edtPassingAMFI"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:inputType="none"
android:focusable="false"
android:drawableStart="@drawable/svg_cal" android:drawableStart="@drawable/svg_cal"
android:drawablePadding="@dimen/margin_10" android:drawablePadding="@dimen/margin_10"
android:focusable="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:inputType="none"
android:textColorHint="@color/greyColor2" android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" /> android:textSize="@dimen/text_size_14" />
@ -202,11 +203,11 @@
android:id="@+id/edtExpiryAMFI" android:id="@+id/edtExpiryAMFI"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:inputType="none"
android:focusable="false"
android:drawableStart="@drawable/svg_cal" android:drawableStart="@drawable/svg_cal"
android:drawablePadding="@dimen/margin_10" android:drawablePadding="@dimen/margin_10"
android:focusable="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:inputType="none"
android:textColorHint="@color/greyColor2" android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" /> android:textSize="@dimen/text_size_14" />
@ -228,8 +229,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:digits="@string/panDigit" android:digits="@string/panDigit"
android:maxLength="10"
android:inputType="textCapCharacters" android:inputType="textCapCharacters"
android:maxLength="10"
android:textColorHint="@color/greyColor2" android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" android:textSize="@dimen/text_size_14"
tool:ignore="TextContrastCheck" /> tool:ignore="TextContrastCheck" />
@ -263,8 +264,8 @@
android:id="@+id/rlEUINUpload" android:id="@+id/rlEUINUpload"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginTop="@dimen/margin_10" android:layout_marginTop="@dimen/margin_10"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/tlFullNamePanCard"> app:layout_constraintTop_toBottomOf="@+id/tlFullNamePanCard">
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
@ -292,42 +293,42 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/tlEUINName"
android:layout_marginTop="@dimen/margin_10" android:layout_marginTop="@dimen/margin_10"
android:hint="@string/euinNumberHint" 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 <com.nivesh.production.partnerOnBoarding.util.maskedEditText.MaskedEditText
android:id="@+id/edtEUINNumberNF" android:id="@+id/edtEUINNumberNF"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="top|start"
android:inputType="number" android:inputType="number"
android:maxEms="18" android:maxEms="18"
android:gravity="top|start"
app:mask="#### / #### / ####"
android:textColorHint="@color/greyColor2" android:textColorHint="@color/greyColor2"
android:textSize="@dimen/text_size_14" />
android:textSize="@dimen/text_size_14"
app:mask="#### / #### / ####" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<TextView <TextView
style="@style/semiBoldStyle"
android:id="@+id/tvUploadEUIN" android:id="@+id/tvUploadEUIN"
style="@style/semiBoldStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="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_marginTop="@dimen/margin_10"
android:layout_below="@+id/tlEUINNumberNF"/>
android:text="@string/uploadEUINCard"
android:textColor="@color/black" />
<TextView <TextView
android:id="@+id/tvUploadEUINFormat" android:id="@+id/tvUploadEUINFormat"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/tlEUINNumberNF"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_10" 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 <RelativeLayout
android:id="@+id/rvEUINUploadLayout" android:id="@+id/rvEUINUploadLayout"
@ -347,8 +348,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:textColor="@color/lightBlue1"
android:text="@string/upload" />
android:text="@string/upload"
android:textColor="@color/lightBlue1" />
</RelativeLayout> </RelativeLayout>
@ -370,7 +371,7 @@
android:layout_marginStart="@dimen/margin_8" android:layout_marginStart="@dimen/margin_8"
android:layout_marginTop="@dimen/margin_25" android:layout_marginTop="@dimen/margin_25"
android:padding="@dimen/margin_4" android:padding="@dimen/margin_4"
android:text="Add ADDRESS PROOF"
android:text="@string/add_address_proof"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_14" android:textSize="@dimen/text_size_14"
android:textStyle="bold" android:textStyle="bold"
@ -398,7 +399,7 @@
android:layout_marginStart="@dimen/margin_8" android:layout_marginStart="@dimen/margin_8"
android:layout_marginTop="@dimen/margin_3" android:layout_marginTop="@dimen/margin_3"
android:padding="@dimen/margin_4" android:padding="@dimen/margin_4"
android:text="Choose the document type"
android:text="@string/choose_the_document_type"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_14" android:textSize="@dimen/text_size_14"
android:textStyle="bold" android:textStyle="bold"
@ -623,7 +624,7 @@
app:layout_constraintHorizontal_chainStyle="spread" app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/btnNext" app:layout_constraintRight_toLeftOf="@+id/btnNext"
app:layout_constraintStart_toStartOf="parent"/>
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnNext" android:id="@+id/btnNext"
@ -644,12 +645,12 @@
app:layout_constraintStart_toEndOf="@+id/saveDraft" /> app:layout_constraintStart_toEndOf="@+id/saveDraft" />
<TextView <TextView
style="@style/regularStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/margin_4" android:padding="@dimen/margin_4"
android:text="@string/up_next_address" android:text="@string/up_next_address"
android:textColor="@color/textColor1" android:textColor="@color/textColor1"
style="@style/regularStyle"
android:textSize="@dimen/text_size_14" android:textSize="@dimen/text_size_14"
app:layout_constraintEnd_toEndOf="@+id/btnNext" app:layout_constraintEnd_toEndOf="@+id/btnNext"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
@ -676,10 +677,10 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/white"
android:layout_below="@+id/pbInternal" android:layout_below="@+id/pbInternal"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:text="@string/pleaseWait"/>
android:text="@string/pleaseWait"
android:textColor="@color/white" />
</RelativeLayout> </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" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView <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="successText">success</string>
<string name="aadhaarText">Aadhaar</string> <string name="aadhaarText">Aadhaar</string>
<string name="timerMsg">minutes are remaining to complete the process</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="join_nivesh">Join Nivesh</string>
<string name="apply_now">APPLY NOW</string> <string name="apply_now">APPLY NOW</string>
<string name="pleaseWait">Please Wait...</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> </resources>

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

@ -11,6 +11,7 @@
<color name="green">#02B92D</color> <color name="green">#02B92D</color>
<color name="red"> #E9161E</color> <color name="red"> #E9161E</color>
<color name="blue">#1F5ACE</color> <color name="blue">#1F5ACE</color>
<color name="blue2">#004783</color>
<color name="transparent">#00000000</color> <color name="transparent">#00000000</color>
<color name="transparent2">#99000000</color> <color name="transparent2">#99000000</color>
<color name="lightBlue">#5077FF</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="successText">success</string>
<string name="aadhaarText">Aadhaar</string> <string name="aadhaarText">Aadhaar</string>
<string name="timerMsg">minutes are remaining to complete the process</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="join_nivesh">Join Nivesh</string>
<string name="apply_now">APPLY NOW</string> <string name="apply_now">APPLY NOW</string>
<string name="pleaseWait">Please Wait...</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> </resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.