diff --git a/app/build.gradle b/app/build.gradle index ecff6e9..daf16a0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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" diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt index 097d7fd..d605b77 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt @@ -20,7 +20,7 @@ class NewDistributorSignStepOneAdapter(private var listData: List) : RecyclerView.Adapter() { 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) : } 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 diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt index 519ff68..c2490a1 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt @@ -7,12 +7,8 @@ import androidx.fragment.app.FragmentPagerAdapter class SectionsPagerAdapter1(manager: FragmentManager, private val fragments: Array) : FragmentPagerAdapter(manager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { - private val titles = ArrayList() - override fun getItem(position: Int): Fragment = fragments[position] override fun getCount(): Int = fragments.size - // override fun getPageTitle(position: Int): CharSequence = titles[position] - } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt deleted file mode 100644 index 026d457..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt +++ /dev/null @@ -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 : Callback> { - - abstract fun onSuccess(response: Resource) - - abstract fun onFailure(response: Resource) - - override fun onResponse(call: Call>, response: Response>) { - 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() -// resp.status = false -// resp.message = response.message() -// onFailure(resp) - } - } - - override fun onFailure(call: Call>, t: Throwable) { -// val response = Resource() -// response.status = false -// response.message = t.message.toString() -// onFailure(response) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt index 029cee7..9c8e0c5 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt @@ -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 = trustManagerFactory.getTrustManagers() + val trustManagers: Array = 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) } } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt index 388c051..60be7f4 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt @@ -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() diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt index 47c01ee..b5b4459 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt @@ -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 diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt index 5cacf5b..0709c50 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt @@ -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() } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ErrorX.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ErrorX.kt deleted file mode 100644 index 2de43e4..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ErrorX.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.partnerOnBoarding.model - -data class ErrorX( - val ErrorCode: Int, - val ErrorMessage: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ImageSelectedModel.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ImageSelectedModel.kt deleted file mode 100644 index a3388b3..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ImageSelectedModel.kt +++ /dev/null @@ -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 -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ResultXX.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ResultXX.kt index af1edb0..37b1598 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ResultXX.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/ResultXX.kt @@ -1,5 +1,5 @@ package com.nivesh.production.partnerOnBoarding.model data class ResultXX( - val Errors: List + val Errors: List ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/GetAMFIDetailRequest.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/GetAMFIDetailRequest.kt deleted file mode 100644 index 8c6912e..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/GetAMFIDetailRequest.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.partnerOnBoarding.model.request - -data class GetAMFIDetailRequest( - var Mobile: String = "", - var ARN: String = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/SaveEAgreementRequestX.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/SaveEAgreementRequestX.kt deleted file mode 100644 index a13b7b4..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/model/request/SaveEAgreementRequestX.kt +++ /dev/null @@ -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 -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/DataRepository.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/DataRepository.kt deleted file mode 100644 index 43e3e03..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/DataRepository.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.nivesh.production.partnerOnBoarding.repositories - -class DataRepository { -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt index 57483c4..ece77a7 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt @@ -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) diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt index 79c515a..fe09d21 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt @@ -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 { diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt index 1e5baa6..c7333db 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt @@ -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 { - - } - } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt index 2f2a453..6401d75 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt @@ -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() } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt index da89386..e2d1be8 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt @@ -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 } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt index 79c6e8b..698cb11 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt @@ -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 private var imageSelectedList = ArrayList() - private var imageSelectedARNOrEUIN = kotlin.collections.ArrayList() private var arnList = ArrayList() 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() - - 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 - 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() + + 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 diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt index a45fe89..46f8c82 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt @@ -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 + private lateinit var viewModel: OnBoardingViewModel companion object { var listMapData: MutableMap? = 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() } } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt index 4ee272f..162920e 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt @@ -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 } } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt index b1d7ccc..ec3f98a 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/QuestionsFragment.kt @@ -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 } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt index a4da0c8..017fb40 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SaveEAgreementFragment.kt @@ -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() } } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt index cbe43f3..02106f1 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt @@ -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") - } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt index 14939ab..8a723c2 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt @@ -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().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): Resource { 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): Resource { - 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): Resource? { - 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 + } } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt index 73873ed..b524b4c 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt @@ -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 + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageFilePath.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageFilePath.kt deleted file mode 100644 index 3f528be..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageFilePath.kt +++ /dev/null @@ -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 { - 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 - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt deleted file mode 100644 index cfad66b..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt +++ /dev/null @@ -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) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt index c97d876..e84b869 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt @@ -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() } diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt deleted file mode 100644 index 562e7ce..0000000 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt +++ /dev/null @@ -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() - fun data(item: String) { - data.value = item - } -} diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt index 5b502ff..e69c7f4 100644 --- a/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt @@ -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> = 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> = 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> = 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?> = 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)) } diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index d289f40..9e386d5 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -347,5 +347,7 @@ Upload EUIN Card File Size Can\'t Greater Than 5 MB EUIN Name (Employee) + success + Aadhaar \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f1d1635..5538b84 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -360,5 +360,7 @@ Upload EUIN Card File Size Can\'t Greater Than 5 MB EUIN Name (Employee) + success + Aadhaar \ No newline at end of file