3 Commits

Author SHA1 Message Date
  Hemant Khadase 5e090421fd updated code 2 years ago
  Hemant Khadase 630b233ac7 added modification in code 2 years ago
  Hemant Khadase 39ce0a10e0 resolved gradle setting issue 2 years ago
34 changed files with 229 additions and 947 deletions
Split View
  1. +2
    -2
      app/build.gradle
  2. +2
    -2
      app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt
  3. +0
    -4
      app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt
  4. +0
    -32
      app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt
  5. +3
    -20
      app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt
  6. +0
    -60
      app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt
  7. +0
    -1
      app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt
  8. +2
    -21
      app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt
  9. +0
    -6
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ErrorX.kt
  10. +0
    -8
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ImageSelectedModel.kt
  11. +1
    -1
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ResultXX.kt
  12. +0
    -6
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/GetAMFIDetailRequest.kt
  13. +0
    -8
      app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/SaveEAgreementRequestX.kt
  14. +0
    -4
      app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/DataRepository.kt
  15. +0
    -12
      app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt
  16. +17
    -25
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt
  17. +0
    -31
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt
  18. +2
    -3
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt
  19. +22
    -79
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt
  20. +104
    -179
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt
  21. +13
    -25
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt
  22. +11
    -25
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt
  23. +0
    -1
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt
  24. +9
    -20
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt
  25. +10
    -36
      app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt
  26. +23
    -105
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt
  27. +4
    -3
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt
  28. +0
    -134
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageFilePath.kt
  29. +0
    -27
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt
  30. +0
    -8
      app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt
  31. +0
    -12
      app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt
  32. +0
    -47
      app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt
  33. +2
    -0
      app/src/main/res/values-hi-rIN/strings.xml
  34. +2
    -0
      app/src/main/res/values/strings.xml

+ 2
- 2
app/build.gradle View File

@ -58,8 +58,8 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
// Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:composeVersion'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:composeVersion'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
// Coroutine Lifecycle Scopes
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"


+ 2
- 2
app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt View File

@ -20,7 +20,7 @@ class NewDistributorSignStepOneAdapter(private var listData: List<DataX>) :
RecyclerView.Adapter<NewDistributorSignStepOneAdapter.ViewHolder>() {
private var context: Context? = null
private var isPosBroker: Boolean? = false
var isPosInsurer: Boolean? = false
private var isPosInsurer: Boolean? = false
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
context = parent.context
@ -89,7 +89,7 @@ class NewDistributorSignStepOneAdapter(private var listData: List<DataX>) :
}
holder.radioGroup.setOnCheckedChangeListener { group, checkedId ->
var rb: RadioButton = group.findViewById(checkedId)
val rb: RadioButton = group.findViewById(checkedId)
if(rb.text.equals("Yes"))
holder.llPOS.visibility = View.VISIBLE
else holder.llPOS.visibility = View.GONE


+ 0
- 4
app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt View File

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

+ 0
- 32
app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt View File

@ -1,32 +0,0 @@
package com.nivesh.production.partnerOnBoarding.api
import com.nivesh.production.partnerOnBoarding.util.Resource
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
abstract class ApiCallback<T : Any> : Callback<Resource<T>> {
abstract fun onSuccess(response: Resource<T>)
abstract fun onFailure(response: Resource<T>)
override fun onResponse(call: Call<Resource<T>>, response: Response<Resource<T>>) {
if (response.isSuccessful && response.body() != null && response.code() == 200) {
onSuccess(response.body()!!)
} else if (response.code() == 650){
// handle 4xx & 5xx error codes here
// val resp = Resource<T>()
// resp.status = false
// resp.message = response.message()
// onFailure(resp)
}
}
override fun onFailure(call: Call<Resource<T>>, t: Throwable) {
// val response = Resource<T>()
// response.status = false
// response.message = t.message.toString()
// onFailure(response)
}
}

+ 3
- 20
app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt View File

@ -2,40 +2,28 @@ package com.nivesh.production.partnerOnBoarding.api
import com.nivesh.production.partnerOnBoarding.NiveshFdApplication
import com.nivesh.production.partnerOnBoarding.util.Constants
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.BASE_URL
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.BASE_URL_COMMON
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.security.KeyStore
import java.util.*
import java.util.concurrent.TimeUnit
import javax.net.ssl.*
class ApiClient {
val context = NiveshFdApplication.appContext
//For First BaseURL
companion object {
private val clientOne by lazy {
//lazy means we only initialize this here once
val logging = HttpLoggingInterceptor()
//loggingInterceptor use for see making request and for see what responses are
logging.setLevel(HttpLoggingInterceptor.Level.BODY)
//see the body of response
//create client for retrofit
val trustManagerFactory: TrustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
trustManagerFactory.init(null as KeyStore?)
val trustManagers: Array<TrustManager> = trustManagerFactory.getTrustManagers()
val trustManagers: Array<TrustManager> = trustManagerFactory.trustManagers
check(!(trustManagers.size != 1 || trustManagers[0] !is X509TrustManager)) {
"Unexpected default trust managers:" + Arrays.toString(
trustManagers
)
"Unexpected default trust managers:" + trustManagers.contentToString()
}
val trustManager: X509TrustManager = trustManagers[0] as X509TrustManager
val sslContext = SSLContext.getInstance("SSL")
@ -50,10 +38,6 @@ class ApiClient {
.connectTimeout(20, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
// .callTimeout(2, TimeUnit.MINUTES)
// .connectTimeout(200, TimeUnit.SECONDS)
// .readTimeout(300, TimeUnit.SECONDS)
// .writeTimeout(300, TimeUnit.SECONDS)
.build()
Retrofit.Builder()
@ -63,8 +47,7 @@ class ApiClient {
.build()
}
//Common Method for All Client (BASE_URL)
val getApiClientOne: ApiInterface by lazy{
val getApiClientOne: ApiInterface by lazy {
clientOne.create(ApiInterface::class.java)
}
}

+ 0
- 60
app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt View File

@ -9,62 +9,13 @@ open class PreferenceManager(context: Context) : IPreferenceHelper {
private var preferences: SharedPreferences = context.getSharedPreferences(preferenceName, Context.MODE_PRIVATE)
companion object {
const val KEY_USER_UID = "UserUid"
const val KEY_LOGIN_ROLE = "LoginRole"
const val KEY_SUB_BROKER_CODE = "SubBrokerCode"
const val KEY_LOGIN_PASSWORD = "LOGIN_PASSWORD"
const val KEY_CLIENT_UMS_ID = "UMS_Id"
const val KEY_CLIENT_CODE = "ClientCode"
const val KEY_PARTNER_CODE = "PartnerCode"
const val KEY_GET_TOKEN = "GetToken"
const val CLIENT_LANGUAGE = "LANGUAGE"
const val IS_FIRST_TIME = "IS FIRST TIME"
const val APP_ID = "AppId"
}
override fun getLoginPasswordHash(): String {
return preferences[KEY_LOGIN_PASSWORD] ?: ""
}
override fun setLoginPasswordHash(appName: String) {
preferences[KEY_LOGIN_PASSWORD] = appName
}
override fun setUserUid(appName: Int) {
preferences[KEY_USER_UID] = appName
}
override fun getUserUid(): Int {
return preferences[KEY_USER_UID] ?: -1
}
override fun setLoginRole(appName: Int) {
preferences[KEY_LOGIN_ROLE] = appName
}
override fun getLoginRole(): Int {
return preferences[KEY_LOGIN_ROLE] ?: -1
}
override fun setSubBrokerID(appName: String) {
preferences[KEY_SUB_BROKER_CODE] = appName
}
override fun getSubBrokerID(): String {
return preferences[KEY_SUB_BROKER_CODE] ?: ""
}
override fun setClientUmsID(appName: String) {
preferences[KEY_CLIENT_UMS_ID] = appName
}
override fun getClientUmsID(): String {
return preferences[KEY_CLIENT_UMS_ID] ?: ""
}
override fun setClientCode(appName: String) {
preferences[KEY_CLIENT_CODE] = appName
}
@ -89,14 +40,6 @@ open class PreferenceManager(context: Context) : IPreferenceHelper {
return preferences[KEY_GET_TOKEN] ?: ""
}
override fun setLanguage(appName: String) {
preferences[CLIENT_LANGUAGE] = appName
}
override fun getLanguage(): String {
return preferences[CLIENT_LANGUAGE] ?: ""
}
override fun setIsFirstTime(appName: Boolean) {
preferences[IS_FIRST_TIME] = appName
@ -106,9 +49,6 @@ open class PreferenceManager(context: Context) : IPreferenceHelper {
return preferences[IS_FIRST_TIME] ?: false
}
override fun getAppId(): String {
return preferences[APP_ID] ?: ""
}
override fun clearPrefs() {
preferences.edit().clear().apply()


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

@ -3,7 +3,6 @@ package com.nivesh.production.partnerOnBoarding.api
import com.google.gson.JsonObject
import com.nivesh.production.partnerOnBoarding.model.*
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.SaveEAgreementRequest
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest
import okhttp3.MultipartBody


+ 2
- 21
app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt View File

@ -2,36 +2,17 @@ package com.nivesh.production.partnerOnBoarding.interfaces
interface IPreferenceHelper {
fun getLoginPasswordHash(): String
fun setLoginPasswordHash(appName: String)
fun getUserUid(): Int
fun setUserUid(appName: Int)
fun getLoginRole(): Int
fun setLoginRole(appName: Int)
fun getSubBrokerID(): String
fun setSubBrokerID(appName: String)
fun getClientUmsID(): String
fun setClientUmsID(appName: String)
fun getClientCode(): String
fun setClientCode(appName: String)
fun setToken(appName: String)
fun getToken(): String
fun setLanguage(appName: String)
fun getLanguage(): String
fun setIsFirstTime(appName: Boolean)
fun getFirstTime(): Boolean
fun clearPrefs()
fun getAppId(): String
fun setPartnerCode(partnerCode: String)
fun getPartnerCode(): String
fun clearPrefs()
}

+ 0
- 6
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ErrorX.kt View File

@ -1,6 +0,0 @@
package com.nivesh.production.partnerOnBoarding.model
data class ErrorX(
val ErrorCode: Int,
val ErrorMessage: String
)

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

@ -1,8 +0,0 @@
package com.nivesh.production.partnerOnBoarding.model
import java.io.File
data class ImageSelectedModel(
var file1: File? = null,
var file2: File? = null
)

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

@ -1,5 +1,5 @@
package com.nivesh.production.partnerOnBoarding.model
data class ResultXX(
val Errors: List<ErrorX>
val Errors: List<Error>
)

+ 0
- 6
app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/GetAMFIDetailRequest.kt View File

@ -1,6 +0,0 @@
package com.nivesh.production.partnerOnBoarding.model.request
data class GetAMFIDetailRequest(
var Mobile: String = "",
var ARN: String = ""
)

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

@ -1,8 +0,0 @@
package com.nivesh.production.partnerOnBoarding.model.request
data class SaveEAgreementRequestX(
val FinancialYear: String,
val OTP: Int,
val OTPGenerationDate: String,
val SubBrokerCode: String
)

+ 0
- 4
app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/DataRepository.kt View File

@ -1,4 +0,0 @@
package com.nivesh.production.partnerOnBoarding.repositories
class DataRepository {
}

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

@ -2,7 +2,6 @@ package com.nivesh.production.partnerOnBoarding.repositories
import com.nivesh.production.partnerOnBoarding.api.ApiInterface
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.SaveEAgreementRequest
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest
import okhttp3.MultipartBody
@ -10,17 +9,6 @@ import okhttp3.RequestBody
class MainRepository constructor(private val apiInterface: ApiInterface) {
// MainActivity
// suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest, token: String) =
// apiInterface.getFDStepsCount(requestBody, token)
//
// suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest, token: String) =
// apiInterface.getClientDetails(getClientDetails, token)
//
// suspend fun getPartnerResponse(partnerRequest: PartnerRequest) = apiInterface.postPartnerCreation(partnerRequest)
suspend fun getPartnerCreationResponse(requestBody: PartnerRequest, token: String) =
apiInterface.postPartnerCreation(requestBody)


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

@ -24,7 +24,6 @@ class RegisterActivity : BaseActivity() {
setContentView(this.root)
}
binding.imgInfo.setOnClickListener {
}
@ -33,32 +32,15 @@ class RegisterActivity : BaseActivity() {
intent = Intent(this@RegisterActivity, RegisterActivity::class.java)
startActivity(intent)
}
binding.btnDistributor.setOnClickListener {
if (!PreferenceManager(this@RegisterActivity).getFirstTime()){
intent = Intent(this@RegisterActivity, ViewPagerActivity::class.java)
intent.putExtra("type", 4)
intent.putExtra("arnType","advisory")
startActivity(intent)
}else{
intent = Intent(this@RegisterActivity, SignUpActivity::class.java)
intent.putExtra("type", 4)
intent.putExtra("arnType","advisory")
startActivity(intent)
}
commonMethod(4, "advisory")
}
binding.btnReferrer.setOnClickListener {
if (!PreferenceManager(this@RegisterActivity).getFirstTime()){
intent = Intent(this@RegisterActivity, ViewPagerActivity::class.java)
intent.putExtra("type", 3)
intent.putExtra("arnType","Associate")
startActivity(intent)
}else{
intent = Intent(this@RegisterActivity, SignUpActivity::class.java)
intent.putExtra("type", 3)
intent.putExtra("arnType","Associate")
startActivity(intent)
}
commonMethod(3, "Associate")
}
binding.imgInfo.setOnClickListener {
showWebViewDialogBottom(
this@RegisterActivity,
@ -68,10 +50,20 @@ class RegisterActivity : BaseActivity() {
}
}
private fun commonMethod(type: Int, brokerType: String) {
intent = if (!PreferenceManager(this@RegisterActivity).getFirstTime()){
Intent(this@RegisterActivity, ViewPagerActivity::class.java)
}else{
Intent(this@RegisterActivity, SignUpActivity::class.java)
}
intent.putExtra("type", type)
intent.putExtra("arnType",brokerType)
startActivity(intent)
}
private fun getScreenHeight(): Int {
val height: Int = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val defaultDisplay =
DisplayManagerCompat.getInstance(this).getDisplay(Display.DEFAULT_DISPLAY)
val defaultDisplay = DisplayManagerCompat.getInstance(this@RegisterActivity).getDisplay(Display.DEFAULT_DISPLAY)
val displayContext = createDisplayContext(defaultDisplay!!)
displayContext.resources.displayMetrics.heightPixels
} else {


+ 0
- 31
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt View File

@ -13,7 +13,6 @@ import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class SignUpActivity : BaseActivity() {
lateinit var binding: ActivitySignupBinding
lateinit var viewModelOne: OnBoardingViewModel
// lateinit var viewModelTwo: OnBoardingViewModel
var type: Int? = null
override fun onCreate(savedInstanceState: Bundle?) {
@ -22,22 +21,11 @@ class SignUpActivity : BaseActivity() {
}
private fun init() {
// viewModel = ViewModelProvider(
// this@SignUpActivity,
// ViewModelProviderFactory(MainRepository(ApiClient.getApiClient))
// )[OnBoardingViewModel::class.java]
viewModelOne = ViewModelProvider(
this@SignUpActivity,
OnBoardingModelProviderFactory(MainRepository(ApiClient.getApiClientOne))
)[OnBoardingViewModel::class.java]
// viewModelTwo = ViewModelProvider(
// this@SignUpActivity,
// OnBoardingModelProviderFactory(MainRepository(ApiClient.getApiClientTwo))
// )[OnBoardingViewModel::class.java]
type = intent.getIntExtra("type", 0)
binding = ActivitySignupBinding.inflate(layoutInflater)
@ -53,23 +41,4 @@ class SignUpActivity : BaseActivity() {
supportFragmentManager.beginTransaction().add(R.id.signUpContainer, fragment).commit()
}
// override fun onBackPressed() {
// val fm: FragmentManager = supportFragmentManager
// if (fm.backStackEntryCount > 0) {
// Log.i("MainActivity", "popping backstack")
// fm.popBackStack()
// } else {
// Log.i("MainActivity", "nothing on backstack, calling super")
// super.onBackPressed()
// }
// }
private fun exitOnBackPressed() {
if (isTaskRoot) {
finish()
} else {
}
}
}

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

@ -36,14 +36,14 @@ class ViewPagerActivity : BaseActivity() {
private fun setViewPager() {
PreferenceManager(this@ViewPagerActivity).setIsFirstTime(true)
type = intent.getIntExtra("type", 0);
type = intent.getIntExtra("type", 0)
fragments = arrayOf(
stepOnePagerFragment,
stepTwoPagerFragment,
stepThreePagerFragment
)
// set viewPager
sectionsPagerAdapter = SectionsPagerAdapter1(supportFragmentManager, fragments)
val viewPager: DisableAdapter1 = binding.viewPager1
viewPager.adapter = sectionsPagerAdapter
@ -77,7 +77,6 @@ class ViewPagerActivity : BaseActivity() {
}
})
binding.tvSkip.setOnClickListener{
stepFourApi()
}


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

@ -3,7 +3,6 @@ package com.nivesh.production.partnerOnBoarding.ui.fragments
import android.os.Build
import android.os.Bundle
import android.text.Editable
import android.text.TextUtils
import android.text.TextWatcher
import android.util.Log
import android.view.LayoutInflater
@ -18,24 +17,20 @@ import com.nivesh.production.partnerOnBoarding.databinding.FragmentAlmostThereBi
import com.nivesh.production.partnerOnBoarding.db.PreferenceManager
import com.nivesh.production.partnerOnBoarding.model.DataX
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.SaveEAgreementRequest
import com.nivesh.production.partnerOnBoarding.model.response.DocumentTypeResponse
import com.nivesh.production.partnerOnBoarding.model.response.PANResponse
import com.nivesh.production.partnerOnBoarding.model.response.PartnerResponse
import com.nivesh.production.partnerOnBoarding.providerfactory.OnBoardingModelProviderFactory
import com.nivesh.production.partnerOnBoarding.repositories.MainRepository
import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidPinCode
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class AlmostThereFragment : BaseFragment() {
private var _binding: FragmentAlmostThereBinding? = null
private val binding get() = _binding!!
lateinit var viewModel: OnBoardingViewModel
// private lateinit var arnData: DataX
// private lateinit var panResponse: PANResponse
private lateinit var viewModel: OnBoardingViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
@ -58,9 +53,9 @@ class AlmostThereFragment : BaseFragment() {
val partnerRequest: PartnerRequest =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
arguments?.getSerializable("Inputvalue", PartnerRequest::class.java)!!
arguments?.getSerializable("InputValue", PartnerRequest::class.java)!!
} else {
(arguments?.getSerializable("Inputvalue") as? PartnerRequest)!!
(arguments?.getSerializable("InputValue") as? PartnerRequest)!!
}
val arnData: DataX? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@ -70,16 +65,15 @@ class AlmostThereFragment : BaseFragment() {
}
val panResponse: PANResponse? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
arguments?.getSerializable("PANDATA", PANResponse::class.java)
arguments?.getSerializable("panData", PANResponse::class.java)
} else {
(arguments?.getSerializable("PANDATA") as? PANResponse)!!
(arguments?.getSerializable("panData") as? PANResponse)!!
}
Log.e("check_arn_Data", arnData.toString() + "\n" + panResponse.toString())
if (panResponse != null)
binding.edtDate.setText(panResponse.Result.data.DOB)
//TODO: Set AMFI Data if Availabe else set PAN Data
if (arnData?.FullName != null) {
binding.edtFullName.setText(arnData.FullName)
} else if (panResponse?.Result?.data?.FullName != null) {
@ -88,7 +82,6 @@ class AlmostThereFragment : BaseFragment() {
binding.edtFullName.setText("")
}
//TODO: Set Address Line1 Data from AMFI if Available else from Pan
if (arnData?.Address != null) {
binding.edtAddressLine1.setText(arnData.Address)
} else if (panResponse?.Result?.data?.Address1 != null) {
@ -104,7 +97,6 @@ class AlmostThereFragment : BaseFragment() {
binding.edtAddressLine2.setText("")
}
//TODO: Set Pin Data from AMFI if Available else from Pan
if (arnData?.Pincode != null) {
binding.edtPinCode.setText(arnData.Pincode)
} else if (panResponse?.Result?.data?.Pincode != null) {
@ -113,7 +105,6 @@ class AlmostThereFragment : BaseFragment() {
binding.edtPinCode.setText("")
}
//TODO: Set City Data from AMFI if Available else from Pan
if (arnData?.City != null) {
binding.spCity.setText(arnData.City)
} else if (panResponse?.Result?.data?.City != null) {
@ -122,7 +113,6 @@ class AlmostThereFragment : BaseFragment() {
binding.spCity.setText("")
}
//TODO: Set State Data from AMFI if Available else from Pan
if (arnData?.State != null) {
binding.spState.setText(arnData.State)
} else if (panResponse?.Result?.data?.State != null) {
@ -137,28 +127,6 @@ class AlmostThereFragment : BaseFragment() {
Common.datePicker(activity as SignUpActivity, binding.edtDate)
}
// binding.edtDate.addTextChangedListener(object : TextWatcher {
// override fun afterTextChanged(s: Editable?) {}
// override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
// override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// Common.removeError(binding.tlDay)
// }
// })
// binding.edtMonth.addTextChangedListener(object : TextWatcher {
// override fun afterTextChanged(s: Editable?) {}
// override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
// override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// Common.removeError(binding.tlMonth)
// }
// })
// binding.edtYear.addTextChangedListener(object : TextWatcher {
// override fun afterTextChanged(s: Editable?) {}
// override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
// override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// Common.removeError(binding.tlYear)
// }
// })
binding.edtFullName.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
@ -194,7 +162,6 @@ class AlmostThereFragment : BaseFragment() {
binding.spCity.setOnClickListener {
}
binding.spState.setOnClickListener {
}
@ -218,7 +185,6 @@ class AlmostThereFragment : BaseFragment() {
binding.btnNext.setOnClickListener {
if (validate()) {
//TODO: ARN,EUIN,ECertificate,Name,Pan,PCertificate value getting from Previous Fragment
partnerRequest.Pin = binding.edtPinCode.text.toString()
partnerRequest.City = binding.spCity.text.toString()
partnerRequest.State = binding.spState.text.toString()
@ -230,11 +196,8 @@ class AlmostThereFragment : BaseFragment() {
partnerRequest.OtherProductName = ""
partnerRequest.PartnerCode = PreferenceManager((activity as SignUpActivity)).getPartnerCode()
partnerRequest.PartnerType = "advisory"
Log.e("check_partner",partnerRequest.toString())
Log.e("check_partner", partnerRequest.toString())
apiPartnerCreation(partnerRequest)
// ApiClient.getApiClient.postPartnerCreation(partnerCreation)
}
}
}
@ -255,12 +218,12 @@ class AlmostThereFragment : BaseFragment() {
PartnerResponse::class.java
)
Log.e("check_res_partner", res.toString())
if(res.Status == "success") {
if (res.Status == "success") {
Toast.makeText(requireActivity(), res.Message, Toast.LENGTH_LONG).show()
var bundle = Bundle()
bundle.putSerializable("mobile",arguments?.getString("mobile")!!)
bundle.putSerializable("email",binding.edtEmail.text.toString())
val bundle = Bundle()
bundle.putSerializable("mobile", arguments?.getString("mobile")!!)
bundle.putSerializable("email", binding.edtEmail.text.toString())
val fragment = SaveEAgreementFragment()
fragment.arguments = bundle
replaceFragment(
@ -272,24 +235,6 @@ class AlmostThereFragment : BaseFragment() {
)
}
}
// (activity as SignUpActivity).viewModel.getPartnerCreation(partnerRequest,"",activity as SignUpActivity)
// (activity as SignUpActivity).viewModel.postPartnerCreationViewModel.observe(viewLifecycleOwner){ resposne ->
// when (resposne){
// is Resource.Success ->{
// Log.e("check_res",resposne.toString())
// }
// is Resource.Error -> {
// Log.e("check_error",resposne.toString())
// }
// is Resource.DataError ->{
// Log.e("check_data_error",resposne.toString())
// }
// is Resource.Loading ->{
// Log.e("check_loading",resposne.toString())
// }
// }
// }
}
private fun validate(): Boolean {
@ -299,8 +244,7 @@ class AlmostThereFragment : BaseFragment() {
binding.tlDay,
getString(R.string.emptyDOB)
)
}
else if (binding.edtFullName.text.toString().isEmpty()) { // EditText
} else if (binding.edtFullName.text.toString().isEmpty()) { // EditText
Common.commonErrorMethod(
binding.edtFullName,
binding.tlFullName,
@ -330,32 +274,31 @@ class AlmostThereFragment : BaseFragment() {
binding.tlPinCode,
getString(R.string.emptyPinCode)
)
} else if (binding.edtPinCode.text.toString().length != 6) { // EditText
} else if (isValidPinCode(binding.edtPinCode.text.toString())) { // EditText
Common.commonErrorMethod(
binding.edtPinCode,
binding.tlPinCode,
getString(R.string.validPinCode)
)
}
else if (binding.spCity.text.toString().isEmpty()) { // EditText
} else if (binding.spCity.text.toString().isEmpty()) { // EditText
Common.commonSpinnerErrorMethod(
binding.spCity,
binding.tlCity,
getString(R.string.emptyCity)
)
}
else if (binding.spState.text.toString().isEmpty()) { // EditText
} else if (binding.spState.text.toString().isEmpty()) { // EditText
Common.commonSpinnerErrorMethod(
binding.spState,
binding.tlState,
getString(R.string.emptyState)
)
}
else if(!binding.cbCheck.isChecked){
Common.showDialogValidation((activity as SignUpActivity),getString(R.string.termsConditionText))
} else if (!binding.cbCheck.isChecked) {
Common.showDialogValidation(
(activity as SignUpActivity),
getString(R.string.termsConditionText)
)
return false
}
else return binding.cbCheck.isChecked
} else return binding.cbCheck.isChecked
}
}

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

@ -52,9 +52,9 @@ import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.*
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.isValidPan
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogValidation
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogWithTwoButtons
import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.maxFileSize
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MediaType.Companion.toMediaTypeOrNull
@ -65,7 +65,6 @@ import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject
import java.io.*
import java.util.*
import kotlin.collections.ArrayList
class GetStartedFragment : BaseFragment() {
private var _binding: FragmentGetStartedBinding? = null
@ -78,35 +77,18 @@ class GetStartedFragment : BaseFragment() {
private val mainPANUpload: Int = 1
private val mainARNPhotoUpload: Int = 2
private val mainEUINPhotoUpload: Int = 3
private val secondDocUpload: Int = 4
private var actionType: Int = -1
private var panString: String = ""
private var docString: String = ""
private var docString2: String = ""
private var panFileExt: String? = ""
private var photoFileExt: String? = ""
private var doc1FileExt: String? = ""
private var doc2fileExt: String? = ""
private var docValue: String = ""
private var uploadPosition = 0
private var isFront: Boolean = false
private var preSelectedDate = ""
private var preSelectedDate2 = ""
var year = 0
var month = 0
var day = 0
private var cal = Calendar.getInstance()
lateinit var viewModel: OnBoardingViewModel
private lateinit var viewModel: OnBoardingViewModel
private lateinit var listOfDocType: List<Data>
private var imageSelectedList = ArrayList<File>()
private var imageSelectedARNOrEUIN = kotlin.collections.ArrayList<File>()
private var arnList = ArrayList<DataX>()
private lateinit var arnData: DataX
private lateinit var panRes: PANResponse
private val MaxFileSize = 5
private val permissions = arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
@ -129,18 +111,8 @@ class GetStartedFragment : BaseFragment() {
private val requestGalleryPermission = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { permission ->
// if (!permission.containsValue(false)) {
) {
selectImageIntent?.launch("image/*")
// } else {
// showDialogWithTwoButtons(
// (activity as SignUpActivity),
// getString(R.string.galleryPermission),
// getString(
// R.string.permissionsRequired
// )
// )
// }
}
override fun onCreateView(
@ -148,7 +120,6 @@ class GetStartedFragment : BaseFragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Inflate the layout for this fragment
_binding = FragmentGetStartedBinding.inflate(inflater, container, false)
return binding.root
}
@ -172,23 +143,6 @@ class GetStartedFragment : BaseFragment() {
return null
}
private fun isInputCorrect(
s: Editable,
totalSymbols: Int,
dividerModulo: Int,
divider: Char
): Boolean {
var isCorrect = s.length <= totalSymbols // check size of entered string
for (i in s.indices) { // check that every element is right
isCorrect = if (i > 0 && (i + 1) % dividerModulo == 0) {
isCorrect and (divider == s[i])
} else {
isCorrect and Character.isDigit(s[i])
}
}
return isCorrect
}
@SuppressLint("SuspiciousIndentation")
private fun init() {
viewModel = ViewModelProvider(
@ -198,31 +152,10 @@ class GetStartedFragment : BaseFragment() {
var docType = "I"
if (arguments?.getString("arnType").equals("Associate", true)) {
binding.edtArnNumber.visibility = View.GONE
binding.tlArnNumber.visibility = View.GONE
binding.edtEUINNumber.visibility = View.GONE
binding.tlArnNumber.visibility = View.GONE
binding.edtPassingAMFI.visibility = View.GONE
binding.tlPassingAMFI.visibility = View.GONE
binding.edtExpiryAMFI.visibility = View.GONE
binding.tlExpiryAMFI.visibility = View.GONE
commonMethodForVisibility(View.GONE)
docType = "N"
} else if (arguments?.getString("arnType").equals("advisory", true)) {
binding.edtArnNumber.visibility = View.VISIBLE
binding.tlArnNumber.visibility = View.VISIBLE
binding.edtEUINNumber.visibility = View.VISIBLE
binding.tlArnNumber.visibility = View.VISIBLE
binding.edtPassingAMFI.visibility = View.VISIBLE
binding.tlPassingAMFI.visibility = View.VISIBLE
binding.edtExpiryAMFI.visibility = View.VISIBLE
binding.tlExpiryAMFI.visibility = View.VISIBLE
commonMethodForVisibility(View.VISIBLE)
docType = "I"
}
@ -294,7 +227,6 @@ class GetStartedFragment : BaseFragment() {
}
binding.btnNext.setOnClickListener {
// apiUploadDocument()
if (arguments?.getString("arnType").equals("Associate", false)) {
val pt = PartnerRequest()
pt.Name = binding.edtFullNamePanCard.text.toString()
@ -302,9 +234,9 @@ class GetStartedFragment : BaseFragment() {
val fragment = AlmostThereFragment()
val bundle = Bundle()
bundle.putSerializable("Inputvalue", pt)
bundle.putSerializable("InputValue", pt)
bundle.putSerializable("arnData", arnData)
bundle.putSerializable("PANDATA", panRes)
bundle.putSerializable("panData", panRes)
bundle.putString("mobile", arguments?.getString("mobile"))
fragment.arguments = bundle
@ -328,9 +260,9 @@ class GetStartedFragment : BaseFragment() {
val fragment = AlmostThereFragment()
val bundle = Bundle()
bundle.putSerializable("Inputvalue", pt)
bundle.putSerializable("InputValue", pt)
bundle.putSerializable("arnData", arnData)
bundle.putSerializable("PANDATA", panRes)
bundle.putSerializable("panData", panRes)
bundle.putString("mobile", arguments?.getString("mobile"))
fragment.arguments = bundle
@ -397,12 +329,12 @@ class GetStartedFragment : BaseFragment() {
}
}
binding.rlARNUpload.setOnClickListener{
binding.rlARNUpload.setOnClickListener {
actionType = mainARNPhotoUpload
selectImage()
selectImage()
}
binding.rlEUINUpload.setOnClickListener{
binding.rlEUINUpload.setOnClickListener {
actionType = mainEUINPhotoUpload
selectImage()
}
@ -410,15 +342,17 @@ class GetStartedFragment : BaseFragment() {
binding.edtPanNumber.addTextChangedListener(object : TextWatcher {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
Common.removeError(binding.tlPanNumber)
if(s.toString().length > 3 && s.toString()[3] != 'P'){
if (isValidIndividualPan(s.toString().trim())) {
binding.rlEUINUpload.visibility = View.GONE
} else {
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.edtEUINNumber.visibility = View.GONE
}
}else if(s.toString().length > 3 && s.toString()[3] == 'P'){
binding.rlEUINUpload.visibility = View.GONE
}
if (s.toString().trim().length >= 10 && !isPanVerify) {
apiPANVerify(s.toString().trim())
} else if (s.toString().trim().length < 10 && !isPanVerify) {
@ -429,7 +363,7 @@ class GetStartedFragment : BaseFragment() {
0
)
binding.edtFullNamePanCard.setText("")
}else if(s.toString().length < 10){
} else if (s.toString().length < 10) {
isPanVerify = false
binding.edtPanNumber.setCompoundDrawablesWithIntrinsicBounds(
0,
@ -437,8 +371,7 @@ class GetStartedFragment : BaseFragment() {
0,
0
)
}
else {
} else {
binding.edtPanNumber.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
@ -461,6 +394,17 @@ class GetStartedFragment : BaseFragment() {
}
}
private fun commonMethodForVisibility(visibility: Int) {
binding.edtArnNumber.visibility = visibility
binding.tlArnNumber.visibility = visibility
binding.edtEUINNumber.visibility = visibility
binding.tlArnNumber.visibility = visibility
binding.edtPassingAMFI.visibility = visibility
binding.tlPassingAMFI.visibility = visibility
binding.edtExpiryAMFI.visibility = visibility
binding.tlExpiryAMFI.visibility = visibility
}
private fun documentTypeAPI(docType: String) {
try {
ProgressUtil.showLoading(activity as SignUpActivity)
@ -481,7 +425,7 @@ class GetStartedFragment : BaseFragment() {
DocumentTypeResponse::class.java
)
Log.e("checkDocRes", res.toString())
if (res.Status == "success") {
if (res.Status == getString(R.string.successText)) {
listOfDocType = res.Result.Data
if (listOfDocType.isNotEmpty()) {
val adapter = ArrayAdapter(
@ -492,68 +436,14 @@ class GetStartedFragment : BaseFragment() {
binding.spDocType.setAdapter(adapter)
}
}
//TODO: Check AMFI Data Available or not
apiAMFIDetail("Mobile", arguments?.getString("mobile"))
// apiAMFIDetail("Mobile", "1722651388")
}
} catch (e: Exception) {
// ProgressUtil.hideLoading()
Log.e("checkPANError", e.message.toString())
}
}
private fun prepareImagePart(file: File, partName: String): MultipartBody.Part {
var requestBody: RequestBody =
file.asRequestBody("application/octet-stream".toMediaTypeOrNull())
return MultipartBody.Part.createFormData(
"Files",
partName,
requestBody
)
}
private fun apiUploadDocument() {
if (imageSelectedList != null && imageSelectedList.size != 0) {
var part = ArrayList<MultipartBody.Part>()
imageSelectedList.forEachIndexed { index, element ->
if (index == 0) {
part.add(prepareImagePart(element, "front"))
} else {
part.add(prepareImagePart(element, "back"))
}
}
(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 == "success") {
Toast.makeText(activity as SignUpActivity, res.Message, Toast.LENGTH_LONG)
.show()
}
}
}
}
private fun apiPANVerify(pan: String) {
try {
ProgressUtil.showLoading(activity as SignUpActivity)
@ -599,9 +489,9 @@ class GetStartedFragment : BaseFragment() {
}
private fun apiAMFIDetail(type: String, value: String?) {
var jsonObject = JSONObject()
val jsonObject = JSONObject()
val mediaType = "application/json; charset=utf-8".toMediaType()
var body: RequestBody
val body: RequestBody
try {
jsonObject.put(type, value)
@ -621,12 +511,11 @@ class GetStartedFragment : BaseFragment() {
response?.data.toString(),
GetAMFIDetailResponse::class.java
)
//TODO: Need to set up Data if not null
if (res != null && res.Result.data != null) {
arnList.clear()
arnList = res.Result.data as ArrayList<DataX>
if (res.Status == "success") {
if (res.Status == getString(R.string.successText)) {
if (type == "ARN") {
if (arnList.size > 0) {
arnData = arnList[0]
@ -640,17 +529,17 @@ class GetStartedFragment : BaseFragment() {
binding.edtExpiryAMFI.setText(arnData.ARNValidTill)
}
setARNEUIN(View.GONE)
setArnUploadVisibility(View.GONE)
} else {
var adapter = ArrayAdapter(
val adapter = ArrayAdapter(
(activity as SignUpActivity),
androidx.appcompat.R.layout.support_simple_spinner_dropdown_item,
arnList
)
binding.edtArnNumber.setAdapter(adapter)
}
}else if(type == "ARN" && binding.edtArnNumber.text.length >= 7){
setARNEUIN(View.VISIBLE)
} else if (type == "ARN" && binding.edtArnNumber.text.length >= 7) {
setArnUploadVisibility(View.VISIBLE)
}
}
}
@ -660,11 +549,8 @@ class GetStartedFragment : BaseFragment() {
}
}
private fun setARNEUIN(visibility: Int) {
private fun setArnUploadVisibility(visibility: Int) {
binding.rlARNUpload.visibility = visibility
// binding.rlEUINUpload.visibility = visibility
// if(visibility==View.VISIBLE) binding.tlEUINNumber.visibility = View.GONE
// else binding.tlEUINNumber.visibility = View.VISIBLE
}
private fun commonErrorMethod(
@ -735,10 +621,6 @@ class GetStartedFragment : BaseFragment() {
}
}
private fun setUploadOption(checked: Boolean) {
isFront = checked
}
private fun selectImage() {
val builder = AlertDialog.Builder(
activity as SignUpActivity
@ -821,7 +703,7 @@ class GetStartedFragment : BaseFragment() {
private fun setVisibility(s: String) {
binding.llDoc.visibility = View.VISIBLE
if (s.contains("Aadhaar")) {
if (s.contains(getString(R.string.aadhaarText))) {
binding.txtFront.visibility = View.VISIBLE
binding.uploadFront.visibility = View.VISIBLE
binding.txtBack.visibility = View.VISIBLE
@ -920,7 +802,7 @@ class GetStartedFragment : BaseFragment() {
val size: Double = Common.getFileSizeInMB(fileExtension.length())
setFrontHideVisible(uri)
if (size < MaxFileSize) {
if (size < maxFileSize) {
if (type == "c") {
encodedPANBase64(fileExtension)
if (isFront) imageSelectedList.add(0, fileExtension)
@ -946,10 +828,10 @@ class GetStartedFragment : BaseFragment() {
} else {
panString = ""
panFileExt = ""
showDialogValidation(activity,getString(R.string.fileSizeCant))
showDialogValidation(activity, getString(R.string.fileSizeCant))
}
}
mainARNPhotoUpload ->{
mainARNPhotoUpload -> {
val fileDir: File = (activity as SignUpActivity).cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
panFileExt = getFileExtension(getFileName(uri))
@ -957,12 +839,10 @@ class GetStartedFragment : BaseFragment() {
binding.ivARNUpload.setImageURI(uri)
if (size < MaxFileSize) {
if (size < maxFileSize) {
if (type == "c") {
encodedPANBase64(fileExtension)
// imageSelectedARNOrEUIN.add(0,fileExtension)
imageSelectedARNOrEUIN.add(0,fileExtension)
binding.tvUploadARN.visibility = View.GONE
imageSelectedList.add(2, fileExtension)
} else {
val bitmap: Bitmap =
MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
@ -977,18 +857,16 @@ class GetStartedFragment : BaseFragment() {
fOut.close()
if (file.exists()) encodedPANBase64(file)
// imageSelectedList.add(2, file)
imageSelectedARNOrEUIN.add(0,file)
binding.tvUploadARN.visibility = View.GONE
imageSelectedList.add(2, file)
Log.e("check_panString", panString + "\n" + bitmap.toString())
}
} else {
panString = ""
panFileExt = ""
showDialogValidation(activity,getString(R.string.fileSizeCant))
showDialogValidation(activity, getString(R.string.fileSizeCant))
}
}
mainEUINPhotoUpload ->{
mainEUINPhotoUpload -> {
val fileDir: File = (activity as SignUpActivity).cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
panFileExt = getFileExtension(getFileName(uri))
@ -996,12 +874,10 @@ class GetStartedFragment : BaseFragment() {
binding.ivEUINUpload.setImageURI(uri)
if (size < MaxFileSize) {
if (size < maxFileSize) {
if (type == "c") {
encodedPANBase64(fileExtension)
// imageSelectedList.add(3, fileExtension)
imageSelectedARNOrEUIN.add(1,fileExtension)
binding.tvUploadEUINTitle.visibility = View.GONE
imageSelectedList.add(3, fileExtension)
} else {
val bitmap: Bitmap =
MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
@ -1016,20 +892,69 @@ class GetStartedFragment : BaseFragment() {
fOut.close()
if (file.exists()) encodedPANBase64(file)
// imageSelectedList.add(3, file)
imageSelectedARNOrEUIN.add(1,file)
binding.tvUploadEUINTitle.visibility = View.GONE
imageSelectedList.add(3, file)
Log.e("check_panString", panString + "\n" + bitmap.toString())
}
} else {
panString = ""
panFileExt = ""
showDialogValidation(activity,getString(R.string.fileSizeCant))
showDialogValidation(activity, getString(R.string.fileSizeCant))
}
}
}
}
private fun apiUploadDocument() {
if (imageSelectedList != null && imageSelectedList.size != 0) {
val part = ArrayList<MultipartBody.Part>()
imageSelectedList.forEachIndexed { index, element ->
if (index == 0) {
part.add(prepareImagePart(element, "front"))
} else {
part.add(prepareImagePart(element, "back"))
}
}
(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()
}
}
}
}
private fun prepareImagePart(file: File, partName: String): MultipartBody.Part {
val requestBody: RequestBody =
file.asRequestBody("application/octet-stream".toMediaTypeOrNull())
return MultipartBody.Part.createFormData(
"Files",
partName,
requestBody
)
}
private fun setFrontHideVisible(uri: Uri) {
if (isFront) {
binding.uploadFront.visibility = View.GONE


+ 13
- 25
app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt View File

@ -5,7 +5,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
@ -25,8 +24,7 @@ class NewDistributorSignStepOne : BaseFragment() {
private var _binding: NewDistributorSignStepOneBinding? = null
private val binding get() = _binding!!
lateinit var viewModel: OnBoardingViewModel
// val listData: List<DataX>
private lateinit var viewModel: OnBoardingViewModel
companion object {
var listMapData: MutableMap<Int, String>? = null
@ -36,7 +34,7 @@ class NewDistributorSignStepOne : BaseFragment() {
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
): View {
_binding = NewDistributorSignStepOneBinding.inflate(inflater, container, false)
return binding.root
}
@ -67,7 +65,7 @@ class NewDistributorSignStepOne : BaseFragment() {
GetAllProductResponse::class.java
)
if ((res.Status == "success")) {
if ((res.Status == getString(R.string.successText))) {
binding.rvList.layoutManager = LinearLayoutManager(activity as SignUpActivity)
val adapter = NewDistributorSignStepOneAdapter(res.Result.Data)
binding.rvList.adapter = adapter
@ -75,26 +73,12 @@ class NewDistributorSignStepOne : BaseFragment() {
}
// val listData = mutableListOf(
// "Mutual Fund",
// "Insurance",
// "Bond",
// "Capital Gain Bond (CGB)",
// "Non-Convertible Debentures(NCDs)",
// "Fixed Deposit (FD)",
// "National Pension System (NPS)",
// "Secondary Bond",
// "Other"
// )
binding.btnNext.setOnClickListener {
if(listMapData?.isNotEmpty() == true){
if (listMapData?.isNotEmpty() == true) {
val bundle = Bundle()
bundle.putString("mobile",arguments?.getString("mobile"))
bundle.putString("arnType","Associate")
var fragment = GetStartedFragment()
bundle.putString("mobile", arguments?.getString("mobile"))
bundle.putString("arnType", "Associate")
val fragment = GetStartedFragment()
fragment.arguments = bundle
replaceFragment(
@ -104,8 +88,12 @@ class NewDistributorSignStepOne : BaseFragment() {
"GET STARTED",
true
)
}else{
Toast.makeText((activity as SignUpActivity), "Choose the business you are interested", Toast.LENGTH_SHORT)
} else {
Toast.makeText(
(activity as SignUpActivity),
"Choose the business you are interested",
Toast.LENGTH_SHORT
)
.show()
}
}


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

@ -11,17 +11,12 @@ import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.api.ApiClient
import com.nivesh.production.partnerOnBoarding.databinding.FragmentOtpBinding
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.providerfactory.OnBoardingModelProviderFactory
import com.nivesh.production.partnerOnBoarding.repositories.MainRepository
import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.toRequestBody
@ -32,8 +27,6 @@ class OTPFragment : BaseFragment() {
private val binding get() = _binding!!
private var type: Int? = null
private var mobile: String? = null
private var partnerCode: String? = null
// lateinit var viewModelOTP: OnBoardingViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
@ -50,11 +43,6 @@ class OTPFragment : BaseFragment() {
}
private fun init() {
// viewModelOTP = ViewModelProvider(
// (activity as SignUpActivity),
// OnBoardingModelProviderFactory(MainRepository(ApiClient.getApiClientOne))
// )[OnBoardingViewModel::class.java]
smsAPI()
@ -99,14 +87,14 @@ class OTPFragment : BaseFragment() {
}
private fun apiVerifyOTP() {
var obj = JSONObject()
obj.put("OTP","1234")
obj.put("Mobile",mobile)
obj.put("Email","test@test.com")
obj.put("ExpiryTimeInMinute",0)
val obj = JSONObject()
obj.put("OTP", "1234")
obj.put("Mobile", mobile)
obj.put("Email", "test@test.com")
obj.put("ExpiryTimeInMinute", 0)
val mediaType = "application/json; charset=utf-8".toMediaType()
var body: RequestBody = obj.toString().toRequestBody(mediaType)
val body: RequestBody = obj.toString().toRequestBody(mediaType)
(activity as SignUpActivity).viewModelOne.getVerifyOTP(
body,
@ -119,13 +107,13 @@ class OTPFragment : BaseFragment() {
Log.e("check_otp_res", response?.data.toString())
val bundle = Bundle()
bundle.putString("mobile",mobile)
bundle.putString("arnType",arguments?.getString("arnType"))
bundle.putString("mobile", mobile)
bundle.putString("arnType", arguments?.getString("arnType"))
var fragment = Fragment()
if(type == 4) {
if (type == 4) {
fragment = GetStartedFragment()
} else if(type == 3){
} else if (type == 3) {
fragment = NewDistributorSignStepOne()
}
@ -207,7 +195,6 @@ class OTPFragment : BaseFragment() {
) : View.OnKeyListener {
override fun onKey(p0: View?, keyCode: Int, event: KeyEvent?): Boolean {
if (event!!.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DEL && currentView.id != R.id.edtOTP1 && currentView.text.isEmpty()) {
//If current is empty then previous EditText's number will also be deleted
previousView!!.text = null
previousView.requestFocus()
return true
@ -220,7 +207,7 @@ class OTPFragment : BaseFragment() {
private val currentView: View,
private val nextView: View?
) : TextWatcher {
override fun afterTextChanged(editable: Editable) { // TODO Auto-generated method stub
override fun afterTextChanged(editable: Editable) {
val text = editable.toString()
when (currentView.id) {
R.id.edtOTP1 -> if (text.length == 1) nextView!!.requestFocus()
@ -228,7 +215,6 @@ class OTPFragment : BaseFragment() {
R.id.edtOTP3 -> if (text.length == 1) nextView!!.requestFocus()
R.id.edtOTP4 -> if (text.length == 1) nextView!!.requestFocus()
R.id.edtOTP5 -> if (text.length == 1) nextView!!.requestFocus()
//You can use EditText4 same as above to hide the keyboard
}
}


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

@ -17,7 +17,6 @@ class QuestionsFragment : BaseFragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Inflate the layout for this fragment
_binding = FragmentQuestionBinding.inflate(inflater,container,false)
return binding.root
}


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

@ -32,14 +32,13 @@ import org.json.JSONObject
class SaveEAgreementFragment : BaseFragment() {
private var _binding: FragmentSaveEAgreementBinding? = null
private val binding get() = _binding!!
// lateinit var viewModel: OnBoardingViewModel
private lateinit var dialog: Dialog
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
): View {
_binding = FragmentSaveEAgreementBinding.inflate(inflater, container, false)
return binding.root
}
@ -51,10 +50,6 @@ class SaveEAgreementFragment : BaseFragment() {
@SuppressLint("SetTextI18n")
private fun init() {
// viewModel = ViewModelProvider(
// (activity as SignUpActivity),
// OnBoardingModelProviderFactory(MainRepository(ApiClient.getApiClientOne))
// )[OnBoardingViewModel::class.java]
binding.header.tvTitle.text = "AGREEMENT"
@ -77,15 +72,12 @@ class SaveEAgreementFragment : BaseFragment() {
ValidateOTPResponse::class.java
)
if (res != null) {
if (res.Status == "success") {
if (dialog.isShowing) dialog.cancel()
showConfirmDialog(res.Message)
} else if (res.Status == "error") {
Common.showDialogValidation((activity as SignUpActivity), res.Message)
}
if (res.Status == getString(R.string.successText)) {
if (dialog.isShowing) dialog.cancel()
showConfirmDialog(res.Message)
} else if (res.Status == "error") {
Common.showDialogValidation((activity as SignUpActivity), res.Message)
}
Log.e("check_otp_res", response?.data.toString())
}
}
@ -269,14 +261,14 @@ class SaveEAgreementFragment : BaseFragment() {
}
private fun apiVerifyOTP(otp: String) {
var obj = JSONObject()
val obj = JSONObject()
obj.put("SubBrokerCode", PreferenceManager((activity as SignUpActivity)).getPartnerCode())
obj.put("OTP", otp)
obj.put("OTPGenerationDate", Common.getDateFromTimeMills(System.currentTimeMillis()))
obj.put("FinancialYear", "")
val mediaType = "application/json; charset=utf-8".toMediaType()
var body: RequestBody = obj.toString().toRequestBody(mediaType)
val body: RequestBody = obj.toString().toRequestBody(mediaType)
(activity as SignUpActivity).viewModelOne.getSaveEAgreement(
body,
@ -296,9 +288,6 @@ class SaveEAgreementFragment : BaseFragment() {
sendOTPRequest.ProductId = 1
sendOTPRequest.UserRole = 3
sendOTPRequest.UserId = "4988"
// Gson().toJson(sendOTPRequest)
(activity as SignUpActivity).viewModelOne.getSaveEAgreementSendOTP(
sendOTPRequest,
"",
@ -315,7 +304,7 @@ class SaveEAgreementFragment : BaseFragment() {
response.data.toString(),
SendOTPResponse::class.java
)
if (res.Status == "success") {
if (res.Status ==getString(R.string.successText)) {
dialogOTP()
}
}


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

@ -10,6 +10,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import com.google.gson.Gson
import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.api.ApiClient
import com.nivesh.production.partnerOnBoarding.databinding.FragmentSignupBinding
import com.nivesh.production.partnerOnBoarding.db.PreferenceManager
@ -22,6 +23,7 @@ import com.nivesh.production.partnerOnBoarding.repositories.MainRepository
import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import com.nivesh.production.partnerOnBoarding.util.Common
import com.nivesh.production.partnerOnBoarding.util.Common.Companion.isValidMobileNumber
import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel
class SignUpFragment : BaseFragment() {
@ -29,7 +31,7 @@ class SignUpFragment : BaseFragment() {
private val binding get() = _binding!!
private var type: Int? = null
private var arnType: String = ""
lateinit var viewModel: OnBoardingViewModel
private lateinit var viewModel: OnBoardingViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
@ -61,22 +63,9 @@ class SignUpFragment : BaseFragment() {
})
binding.btnSignUp.setOnClickListener {
if (validate()) {
// val partnerRequest = PartnerRequest()
// partnerRequest.Mobile = binding.edtMobileNumber.text.toString().trim()
// partnerRequest.PartnerType = arnType
// partnerRequest.DateOfIncorporation = Common.getDateFromTimeMills(System.currentTimeMillis())
// //GsonBuilder().create().toJson(this, PartnerRequest::class.java)
// (activity as SignUpActivity).viewModelOne.getPartnerCreateData(
// partnerRequest,
// "",
// (activity as SignUpActivity)
// )
val vpr = ValidatePartnerRequest()
vpr.Mobile = binding.edtMobileNumber.text.toString().trim()
(activity as SignUpActivity).viewModelOne.getPartnerValidate(
vpr,
"",
@ -93,8 +82,7 @@ class SignUpFragment : BaseFragment() {
response?.data.toString(),
PartnerResponse::class.java
)
if (cretePartnerResponse.Status == "success") {
if (cretePartnerResponse.Status == (activity as SignUpActivity).getString(R.string.successText)) {
setUpOTPFragment(cretePartnerResponse.Result.PartnerCode)
} else {
Common.showDialogValidation(
@ -114,7 +102,7 @@ class SignUpFragment : BaseFragment() {
ValidatePartnerResponse::class.java
)
if (validatePartnerResponse.Status == "success") {
if (validatePartnerResponse.Status == (activity as SignUpActivity).getString(R.string.successText)) {
if (validatePartnerResponse.Result.IsPartialRegistered) {
PreferenceManager(activity as SignUpActivity).setPartnerCode(
validatePartnerResponse.Result.PartnerCode)
@ -151,7 +139,7 @@ class SignUpFragment : BaseFragment() {
replaceFragment(
activity as BaseActivity,
com.nivesh.production.partnerOnBoarding.R.id.signUpContainer,
R.id.signUpContainer,
fragment,
"OTP",
true
@ -164,37 +152,23 @@ class SignUpFragment : BaseFragment() {
Common.commonErrorMethod(
binding.edtMobileNumber,
binding.tlMobileNumber,
getString(com.nivesh.production.partnerOnBoarding.R.string.emptyMobileNumber)
getString(R.string.emptyMobileNumber)
)
} else if (binding.edtMobileNumber.text?.length != 10) { // EditText
} else if (!isValidMobileNumber(binding.edtMobileNumber.text.toString())) { // EditText
Common.commonErrorMethod(
binding.edtMobileNumber,
binding.tlMobileNumber,
getString(com.nivesh.production.partnerOnBoarding.R.string.inValidMobileNumber)
getString(R.string.inValidMobileNumber)
)
} else if (!Common.isIndianMobileNo(binding.edtMobileNumber.text.toString())) { // EditText
Common.commonErrorMethod(
binding.edtMobileNumber,
binding.tlMobileNumber,
getString(com.nivesh.production.partnerOnBoarding.R.string.inValidIndianMobileNumber)
getString(R.string.inValidIndianMobileNumber)
)
} else {
return true
}
}
override fun onDestroy() {
super.onDestroy()
Log.e("check_sign_destroy", "Destroyed")
}
override fun onDestroyView() {
super.onDestroyView()
Log.e("check_sign_destroy", "DestroyeView")
}
override fun onDetach() {
super.onDetach()
Log.e("check_sign_destroy", "Detach")
}
}

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

@ -1,21 +1,17 @@
package com.nivesh.production.partnerOnBoarding.util
import android.R.attr.textColor
import android.app.Activity
import android.app.AlertDialog
import android.app.DatePickerDialog
import android.app.Dialog
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.net.Uri
import android.os.Build
import android.provider.Settings
import android.text.format.DateFormat
import android.util.Log
import android.text.TextUtils
import android.util.Patterns
import android.view.Gravity
import android.view.View
@ -23,16 +19,13 @@ import android.view.Window
import android.webkit.WebView
import android.widget.ImageView
import androidx.appcompat.app.ActionBar
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.google.gson.JsonObject
import com.nivesh.production.partnerOnBoarding.R
import com.nivesh.production.partnerOnBoarding.model.response.PartnerResponse
import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity
import kotlinx.coroutines.CoroutineExceptionHandler
import org.json.JSONObject
import retrofit2.HttpException
import retrofit2.Response
import java.io.IOException
@ -45,12 +38,6 @@ import java.util.regex.Pattern
class Common {
companion object {
/**
*Before use this method write following code in model class
app:Application(in activity and model)
changes in hasInternetConnection
val connectivityManager = getApplication<NewsApplication>().getSystemService(....
**/
//internet check
fun isNetworkAvailable(activity: Activity): Boolean {
val connectivityManager = activity.getSystemService(
@ -87,24 +74,19 @@ class Common {
return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches()
}
//valid Name Check
fun isValidName(nameText: String?): Boolean {
val pattern = Pattern.compile(("^[a-zA-Z\\s]{2,70}$"))
val matcher = pattern.matcher(nameText.toString())
return matcher.matches()
}
//validPanCard
fun isValidPan(pan: String?): Boolean {
val mPattern = Pattern.compile("[A-Z]{5}[0-9]{4}[A-Z]")
val mPattern = Pattern.compile("[A-Z]{5}\\d{4}[A-Z]")
val mMatcher = mPattern.matcher(pan.toString())
return mMatcher.matches()
}
fun isValidIndividualPan(pan: String?): Boolean {
val mPattern = Pattern.compile("[A-Z]{3}[P][A-Z][0-9]{4}[A-Z]")
val mMatcher = mPattern.matcher(pan.toString())
return mMatcher.matches()
fun isValidIndividualPan(pan: String): Boolean {
// val mPattern = Pattern.compile("[A-Z]{3}P[A-Z]\\d{4}[A-Z]")
// val mMatcher = mPattern.matcher(pan.toString())
// return mMatcher.matches()
return pan.length == 4 && pan[3] != 'P'
}
//is Indian mobile Number
@ -119,6 +101,10 @@ class Common {
return match.matches()
}
fun isValidMobileNumber(mobileNumber : String) : Boolean{
return mobileNumber.length == 10
}
fun removeError(textInputLayout: TextInputLayout) {
if (textInputLayout.error != null) {
textInputLayout.error = null
@ -188,24 +174,6 @@ class Common {
builder.show()
}
// set Default Step
fun defaultShape(): GradientDrawable {
val shape = GradientDrawable()
shape.shape = GradientDrawable.OVAL
shape.setColor(Color.WHITE)
shape.setStroke(6, Color.parseColor(Colors.colorDefault))
return shape
}
// set Selected Step
fun selectedShape(): GradientDrawable {
val shape = GradientDrawable()
shape.shape = GradientDrawable.OVAL
shape.setColor(Color.parseColor(Colors.colorDefault))
shape.setStroke(6, Color.parseColor(Colors.colorDefault))
return shape
}
fun commonErrorMethod(
inputText: TextInputEditText,
inputError: TextInputLayout,
@ -216,16 +184,6 @@ class Common {
return false
}
fun commonErrorAutoCompleteMethod(
inputText: MaterialAutoCompleteTextView,
inputError: TextInputLayout,
strMessage: String
): Boolean {
inputText.requestFocus()
inputError.error = strMessage
return false
}
fun commonSpinnerErrorMethod(
inputText: MaterialAutoCompleteTextView,
inputError: TextInputLayout,
@ -236,13 +194,6 @@ class Common {
return false
}
fun getDate(string: String): String {
val input = SimpleDateFormat("dd/MM/yyyy", Locale.US)
val mDate: Date? = input.parse(string)
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
return simpleDateFormat.format(mDate as Date)
}
fun handleResponse(response: Response<JsonObject>): Resource<JsonObject> {
if (response.isSuccessful && response.body() != null) {
response.body()?.let { resultResponse ->
@ -252,32 +203,6 @@ class Common {
return Resource.Error(response.message())
}
fun handleResponse1(response: Response<String>): Resource<String> {
if (response.isSuccessful && response.body() != null) {
return if (response.body().toString().isNotEmpty()) {
Log.e("response", "-->$response")
val str: String = response.body().toString().replace("\r\n", "")
Log.e("str", "-->$str")
val jsonObject = JSONObject(str)
Log.e("jsonObject", "-->$jsonObject")
Resource.Success(jsonObject.toString())
} else {
Resource.Error(response.message())
}
}
return Resource.Error(response.message())
}
fun handleResponsePartner(response: Response<PartnerResponse>): Resource<PartnerResponse>? {
if (response.isSuccessful && response.body() != null) {
response.body()?.let { resultResponse ->
return Resource.Success(resultResponse)
}
}
return Resource.Error(response.message())
}
fun handleError(activity: Activity): CoroutineExceptionHandler {
val handler = CoroutineExceptionHandler { _, exception ->
if (exception is IOException || exception is HttpException) {
@ -295,18 +220,6 @@ class Common {
return handler
}
fun isMinor(date: String): Boolean {
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
val dt1: Date = simpleDateFormat.parse(date) as Date
val year: Int = DateFormat.format("yyyy", dt1).toString().toInt()
val month: Int = DateFormat.format("mm", dt1).toString().toInt()
val day = DateFormat.format("dd", dt1).toString().toInt()
val userAge: Calendar = GregorianCalendar(year, month, day)
val minAdultAge: Calendar = GregorianCalendar()
minAdultAge.add(Calendar.YEAR, -18)
return minAdultAge.before(userAge)
}
/* this function is used for file size in readable format(End)*/
fun getFileSizeInMB(length: Long): Double { // Get length of file in bytes
val fileSizeInBytes =
@ -325,12 +238,12 @@ class Common {
}
}
fun datePicker(activity: Activity,edtDOB: TextInputEditText): String {
var cal = Calendar.getInstance()
fun datePicker(activity: Activity, edtDOB: TextInputEditText): String {
val cal = Calendar.getInstance()
var preSelectedDate = ""
var year: Int
var month: Int
var day: Int
val year: Int
val month: Int
val day: Int
if (edtDOB.text.toString().isNotEmpty()) {
val formatter: java.text.DateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
@ -366,10 +279,15 @@ class Common {
return preSelectedDate
}
fun getDateFromTimeMills(long: Long) : String{
val sdf = SimpleDateFormat("yyyy-MM-dd")
fun getDateFromTimeMills(long: Long): String {
val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.US)
val resultDate = Date(long)
return sdf.format((resultDate))
}
//valid email check
fun isValidPinCode(target: String): Boolean {
return target.length != 6
}
}
}

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

@ -1,13 +1,14 @@
package com.nivesh.production.partnerOnBoarding.util
class Constants() {
class Constants {
companion object {
const val BASE_URL = "http://3.109.121.6:5001/api/"
// const val BASE_URL = "http://3.109.121.6/partner/api/"
const val BASE_URL_COMMON = "http://3.109.121.6:5002/api/"
// const val token = "636F8F63-06C4-4D95-8562-392B34025FB0"
const val paymentUrl = "https://uat.nivesh.com/bajajFD/OrderStatus"
const val maxFileSize : Double = 5.0
}
}

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

@ -1,134 +0,0 @@
package com.nivesh.production.partnerOnBoarding.util
import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.content.ContentUris
import android.content.Context
import android.database.Cursor
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.DocumentsContract
import android.provider.MediaStore
object ImageFilePath {
/**
* Method for return file path of Gallery image
*
* @param context
* @param uri
* @return path of the selected image file from gallery
*/
var nopath = "Select Video Only"
@TargetApi(Build.VERSION_CODES.KITKAT)
@SuppressLint("NewApi")
fun getPath(context: Context, uri: Uri): String? {
val isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
if (isExternalStorageDocument(uri)) {
val docId = DocumentsContract.getDocumentId(uri)
val split = docId.split(":").toTypedArray()
val type = split[0]
if ("primary".equals(type, ignoreCase = true)) {
return (Environment.getExternalStorageDirectory().toString() + "/"
+ split[1])
}
} else if (isDownloadsDocument(uri)) {
val id = DocumentsContract.getDocumentId(uri)
val contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"),
java.lang.Long.valueOf(id)
)
return getDataColumn(context, contentUri, null, null)
} else if (isMediaDocument(uri)) {
val docId = DocumentsContract.getDocumentId(uri)
val split = docId.split(":").toTypedArray()
val type = split[0]
var contentUri: Uri? = null
if ("image" == type) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
} else if ("video" == type) {
contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI
} else if ("audio" == type) {
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
}
val selection = "_id=?"
val selectionArgs = arrayOf(split[1])
return getDataColumn(
context, contentUri, selection,
selectionArgs
)
}
} else if ("content".equals(uri.scheme, ignoreCase = true)) {
// Return the remote address
return if (isGooglePhotosUri(uri)) uri.lastPathSegment else getDataColumn(
context,
uri,
null,
null
)
} else if ("file".equals(uri.scheme, ignoreCase = true)) {
return uri.path
}
return nopath
}
private fun getDataColumn(
context: Context, uri: Uri?,
selection: String?, selectionArgs: Array<String>?
): String {
var cursor: Cursor? = null
val column = "_data"
val projection = arrayOf(column)
try {
cursor = context.contentResolver.query(
uri!!, projection,
selection, selectionArgs, null
)
if (cursor != null && cursor.moveToFirst()) {
val index = cursor.getColumnIndexOrThrow(column)
return cursor.getString(index)
}
} finally {
cursor?.close()
}
return nopath
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is ExternalStorageProvider.
*/
private fun isExternalStorageDocument(uri: Uri): Boolean {
return "com.android.externalstorage.documents" == uri
.authority
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is DownloadsProvider.
*/
private fun isDownloadsDocument(uri: Uri): Boolean {
return "com.android.providers.downloads.documents" == uri
.authority
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is MediaProvider.
*/
private fun isMediaDocument(uri: Uri): Boolean {
return "com.android.providers.media.documents" == uri
.authority
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is Google Photos.
*/
private fun isGooglePhotosUri(uri: Uri): Boolean {
return "com.google.android.apps.photos.content" == uri
.authority
}
}

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

@ -1,27 +0,0 @@
package com.nivesh.production.partnerOnBoarding.util
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
class ImageUtil {
@Throws(IllegalArgumentException::class)
fun convert(base64Str: String): Bitmap? {
val decodedBytes: ByteArray = Base64.decode(
base64Str.substring(base64Str.indexOf(",") + 1),
Base64.DEFAULT
)
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.size)
}
companion object {
fun convert(bitmap: Bitmap): String? {
val outputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream)
return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT)
}
}
}

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

@ -22,22 +22,14 @@ object ProgressUtil{
fun showLoading(ctx: Context){
// instantiating the lateInit objects
hideLoading()
dialogBuilder= AlertDialog.Builder(ctx)
pDialog= ProgressBar(ctx)
// setting up the dialog
dialogBuilder.setCancelable(false)
dialogBuilder.setView(pDialog)
alertDialog=dialogBuilder.create()
// magic of transparent background goes here
alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
// setting the alertDialog's BackgroundDrawable as the color resource of any color with 1% opacity
alertDialog.window?.setBackgroundDrawable(ColorDrawable(Color.parseColor("#00141414")))
// finally displaying the Alertdialog containing the ProgressBar
alertDialog.show()
}


+ 0
- 12
app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt View File

@ -1,12 +0,0 @@
package com.nivesh.production.partnerOnBoarding.viewModels
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
open class MyObservable : ViewModel()
{
val data = MutableLiveData<String>()
fun data(item: String) {
data.value = item
}
}

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

@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.gson.JsonObject
import com.nivesh.production.partnerOnBoarding.model.request.PartnerRequest
import com.nivesh.production.partnerOnBoarding.model.request.SaveEAgreementRequest
import com.nivesh.production.partnerOnBoarding.model.request.SendOTPRequest
import com.nivesh.production.partnerOnBoarding.model.request.ValidatePartnerRequest
import com.nivesh.production.partnerOnBoarding.repositories.MainRepository
@ -20,43 +19,6 @@ import okhttp3.RequestBody
open class OnBoardingViewModel(private val mainRepository: MainRepository) : ViewModel() {
// val postPartnerCreationViewModel: MutableLiveData<Resource<PartnerResponse>> = MutableLiveData()
// fun getPartnerCreation(
// requestBody: PartnerCreation,
// token: String,
// activity: Activity
// ) = viewModelScope.launch(handleError(activity)) {
// if (Common.isNetworkAvailable(activity)) {
// postPartnerCreationViewModel.postValue(Resource.Loading())
// val response = mainRepository.getPartnerResponse(requestBody)
// postPartnerCreationViewModel.postValue(handleResponse(response))
// }
// }
// val getStepsCountMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
// fun getStepsCount(
// requestBody: FDStepsCountRequest,
// token: String,
// activity: Activity
// ) = viewModelScope.launch(handleError(activity)) {
// if (Common.isNetworkAvailable(activity)) {
// getStepsCountMutableData.postValue(Resource.Loading())
// val response = mainRepository.getStepsCountResponse(requestBody, token)
// getStepsCountMutableData.postValue(handleResponse(response))
// }
// }
//
// val getClientDetailsMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
// fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String, activity: Activity) =
// viewModelScope.launch(handleError(activity)) {
// if (Common.isNetworkAvailable(activity)) {
// getClientDetailsMutableData.postValue(Resource.Loading())
// val response =
// mainRepository.getClientDetailsResponse(getClientDetailsRequest, token)
// getClientDetailsMutableData.postValue(handleResponse(response))
// }
// }
val getPartnerCreationMutableData: MutableLiveData<Resource<JsonObject>?> = MutableLiveData()
fun getPartnerCreateData(
requestBody: PartnerRequest,
@ -64,7 +26,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getPartnerCreationMutableData.postValue(Resource.Loading())
val response = mainRepository.getPartnerCreationResponse(requestBody, token)
getPartnerCreationMutableData.postValue(handleResponse(response))
}
@ -77,7 +38,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getValidatePartnerResponse(validatePartnerRequest)
getValidatePartnerMutableData.postValue(handleResponse(response))
}
@ -113,7 +73,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getVerifyOTP(requestBody)
getVerifyOTPMutableData.postValue(handleResponse(response))
}
@ -126,7 +85,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getAMFIDetailResponse(requestBody)
getAMFIDetailMutableData.postValue(handleResponse(response))
}
@ -139,7 +97,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getPANDetailResponse(url,requestBody)
getPANDetailMutableData.postValue(handleResponse(response))
}
@ -153,7 +110,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getDocumentTypeResponse(url,value,type)
getDocumentTypeMutableData.postValue(handleResponse(response))
}
@ -168,7 +124,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getDocumentUploadResponse(multipartBody,pc,pr,di)
getDocumentUploadMutableData.postValue(handleResponse(response))
}
@ -181,7 +136,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getPartnerCreationMutableData.postValue(Resource.Loading())
val response = mainRepository.getSaveEAgreement(requestBody, token)
getSaveEAgreementMutableData.postValue(handleResponse(response))
}
@ -193,7 +147,6 @@ open class OnBoardingViewModel(private val mainRepository: MainRepository) : Vie
activity: Activity
) = viewModelScope.launch(handleError(activity)) {
if (Common.isNetworkAvailable(activity)) {
// getValidatePartnerMutableData.postValue(Resource.Loading())
val response = mainRepository.getAllProduct(url)
getAllProductMutableData.postValue(handleResponse(response))
}


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

@ -347,5 +347,7 @@
<string name="uploadEUINCard">Upload EUIN Card</string>
<string name="fileSizeCant">File Size Can\'t Greater Than 5 MB</string>
<string name="euinName">EUIN Name (Employee)</string>
<string name="successText">success</string>
<string name="aadhaarText">Aadhaar</string>
</resources>

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

@ -360,5 +360,7 @@
<string name="uploadEUINCard">Upload EUIN Card</string>
<string name="fileSizeCant">File Size Can\'t Greater Than 5 MB</string>
<string name="euinName">EUIN Name (Employee)</string>
<string name="successText">success</string>
<string name="aadhaarText">Aadhaar</string>
</resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.