From 78d0613eae6e0ad16740b24bf501f49e32f434a0 Mon Sep 17 00:00:00 2001 From: pankaj Date: Tue, 3 Jan 2023 16:52:11 +0530 Subject: [PATCH 1/8] send data fragment --- .../bajajfd/ui/activity/BajajFdMainActivity.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index f64a894..33ffc2f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -1,6 +1,4 @@ package com.nivesh.production.bajajfd.ui.activity - -import android.R import android.graphics.drawable.Drawable import android.os.Bundle import android.util.Log @@ -8,7 +6,6 @@ import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.google.gson.Gson -import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding @@ -454,7 +451,11 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface ,SendData{ override fun sendDataFragment(message: String?) { val tag = "android:switcher:" + com.nivesh.production.bajajfd.R.id.viewPager.toString() + ":" + 1 val f: StepFourBajajFDFragment? = supportFragmentManager.findFragmentByTag(tag) as StepFourBajajFDFragment? - f.displayReceivedData(message) + if (f != null) { + if (message != null) { + f.displayReceivedData(message) + } + } } From 06aded85e061041e6a8675625efb49eb1942b15a Mon Sep 17 00:00:00 2001 From: pankaj Date: Wed, 4 Jan 2023 10:27:50 +0530 Subject: [PATCH 2/8] step --- .../production/bajajfd/BajajApplication.kt | 13 ++++++ .../bajajfd/adapter/CustomerListAdapter.kt | 5 +++ .../production/bajajfd/api/ApiClient.kt | 40 ++++++++++++++++++- .../ui/fragment/StepFourBajajFDFragment.kt | 2 + .../nivesh/production/bajajfd/util/Common.kt | 6 +++ .../res/layout/fragment_bajajfd_step_four.xml | 6 ++- .../res/layout/item_customer_list_preview.xml | 6 +-- 7 files changed, 73 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt b/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt index 22e3de5..8956025 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/BajajApplication.kt @@ -1,6 +1,7 @@ package com.nivesh.production.bajajfd import android.app.Application +import android.content.Context class BajajApplication : Application() { private var mInstance: BajajApplication? = null @@ -9,10 +10,22 @@ class BajajApplication : Application() { override fun onCreate() { super.onCreate() mInstance = this; + appContext = applicationContext } @Synchronized fun getInstanceApp(): BajajApplication? { return mInstance } + + + companion object { + + lateinit var appContext: Context + + } + + + + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt index 3681c93..73265b9 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/CustomerListAdapter.kt @@ -3,6 +3,7 @@ package com.nivesh.production.bajajfd.adapter import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.recyclerview.widget.RecyclerView import com.google.android.material.switchmaterial.SwitchMaterial import com.nivesh.production.bajajfd.R @@ -34,11 +35,15 @@ class CustomerListAdapter( override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { val cList = customerList?.get(position) if (cList != null) { + holder.itemView.apply { holder.tvCustomerName.text = cList.Label setOnClickListener { onItemClickListener?.let { it(cList) + + Toast.makeText(context,cList.Value,Toast.LENGTH_SHORT).show() + if (checkedPosition != holder.adapterPosition) { notifyItemChanged(checkedPosition) checkedPosition = holder.adapterPosition diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt index aaa5a11..2b88881 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt @@ -1,13 +1,16 @@ package com.nivesh.production.bajajfd.api + import com.nivesh.production.bajajfd.interfaces.ApiInterface import com.nivesh.production.bajajfd.util.Constants.Companion.BASE_URL +import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory class ApiClient { + companion object { private val client by lazy { //lazy means we only initialize this here once @@ -17,7 +20,7 @@ class ApiClient { //see the body of response //create client for retrofit val client = OkHttpClient.Builder() - .addInterceptor(logging) + .addInterceptor(ConnectVerifierInterceptor()) .retryOnConnectionFailure(true) .build() Retrofit.Builder() @@ -29,5 +32,40 @@ class ApiClient { val getApiClient: ApiInterface by lazy { client.create(ApiInterface::class.java) } + + + + + class ConnectVerifierInterceptor : Interceptor { + override fun intercept(chain: Interceptor.Chain): okhttp3.Response { +// if (isNetworkAvailable(BaseActivity())) { +// // throw IOException("No Network Available!") +// +// } + + val request = chain.request() + return chain.proceed(request) + + + + + } + + } + + + } + + + + + + + + + + + + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 74f02dd..7bb6e34 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -138,6 +138,8 @@ class StepFourBajajFDFragment : BaseFragment() { val customerListAdapter = CustomerListAdapter(getCustomerList) binding.rvTerms.adapter = customerListAdapter + + } private fun getFDDetailsApi(uniqueId: String) { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 791ce18..18cb165 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -14,6 +14,7 @@ import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.BajajApplication import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.ui.activity.BaseActivity import retrofit2.HttpException @@ -27,6 +28,8 @@ 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) @@ -64,6 +67,9 @@ class Common { return false } + + + //valid email check fun isValidEmail(target: String?): Boolean { return Patterns.EMAIL_ADDRESS.matcher(target.toString()).matches() diff --git a/app/src/main/res/layout/fragment_bajajfd_step_four.xml b/app/src/main/res/layout/fragment_bajajfd_step_four.xml index 1017eb3..0ef98b7 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_four.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_four.xml @@ -220,7 +220,11 @@ + android:layout_height="match_parent" + tools:listitem="@layout/item_customer_list_preview" + + + /> diff --git a/app/src/main/res/layout/item_customer_list_preview.xml b/app/src/main/res/layout/item_customer_list_preview.xml index 2fff86b..1531c6e 100644 --- a/app/src/main/res/layout/item_customer_list_preview.xml +++ b/app/src/main/res/layout/item_customer_list_preview.xml @@ -22,14 +22,14 @@ android:layout_gravity="center_vertical" android:padding="@dimen/margin_2" android:layout_weight="0.87" - android:layout_width="0dp" + android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:textSize="@dimen/text_size_12"/> - + \ No newline at end of file From 8155bb84de72ea055221eaa5ec5919f6ccf6517b Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 5 Jan 2023 10:45:01 +0530 Subject: [PATCH 3/8] resource change --- .../production/bajajfd/api/ApiCallback.kt | 35 ++++++++++++ .../production/bajajfd/api/ApiClient.kt | 6 ++ .../bajajfd/api/TokenAuthenticator.kt | 19 +++++++ .../ui/activity/BajajFdMainActivity.kt | 19 ++++++- .../ui/fragment/StepFourBajajFDFragment.kt | 6 ++ .../ui/fragment/StepOneBajajFDFragment.kt | 21 +++++++ .../ui/fragment/StepThreeBajajFDFragment.kt | 8 +++ .../ui/fragment/StepTwoBajajFDFragment.kt | 56 +++++++++++++++++++ .../nivesh/production/bajajfd/util/Common.kt | 12 +++- .../production/bajajfd/util/Resource.kt | 27 +++++++-- 10 files changed, 202 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt new file mode 100644 index 0000000..308a41f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiCallback.kt @@ -0,0 +1,35 @@ +package com.nivesh.production.bajajfd.api + +import com.nivesh.production.bajajfd.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 { + // 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/bajajfd/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt index 14f4d89..a3ef03a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/ApiClient.kt @@ -13,6 +13,7 @@ import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import java.io.IOException +import java.util.concurrent.TimeUnit class ApiClient { val context = BajajApplication.appContext @@ -27,7 +28,12 @@ class ApiClient { val client = OkHttpClient.Builder() .addInterceptor(ConnectVerifierInterceptor()) .retryOnConnectionFailure(true) + .callTimeout(2, TimeUnit.MINUTES) + .connectTimeout(20, TimeUnit.SECONDS) + .readTimeout(30, TimeUnit.SECONDS) + .writeTimeout(30, TimeUnit.SECONDS) .build() + Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt b/app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt new file mode 100644 index 0000000..204cf9d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/api/TokenAuthenticator.kt @@ -0,0 +1,19 @@ +package com.nivesh.production.bajajfd.api + +import okhttp3.Authenticator +import okhttp3.Request +import okhttp3.Response +import okhttp3.Route + +class TokenAuthenticator { +// override fun authenticate(route: Route?, response: Response): Request? { +//// newAccessToken = service.refreshToken(); +//// +//// // Add new header to rejected request and retry it +//// return response.request().newBuilder() +//// .header(AUTHORIZATION, newAccessToken) +//// .build(); +// +// +// } +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 9bb0340..d02c903 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.google.gson.Gson import com.nivesh.production.bajajfd.adapter.SectionsPagerAdapter +import com.nivesh.production.bajajfd.api.ApiCallback import com.nivesh.production.bajajfd.api.ApiClient import com.nivesh.production.bajajfd.databinding.ActivityBajajFdBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface @@ -145,6 +146,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -187,7 +191,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { viewModel.getClientDetails(getClientDetailsRequest, token) viewModel.getClientDetailsMutableData.observe(this) { response -> when (response) { - is Resource.Success -> { + is Resource.Success + -> { Log.e("response", "-->$response") getClientDetailsResponse = Gson().fromJson( @@ -215,6 +220,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + }is Resource.DataError -> { + } } } @@ -222,6 +229,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } + + + private fun setViewPager(stepsCount: Int) { // steps setting setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape()) @@ -358,6 +368,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -460,6 +473,10 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 629f416..cadf277 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -142,6 +142,8 @@ class StepFourBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + }is Resource.DataError -> { + } } } @@ -210,6 +212,10 @@ class StepFourBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index b6e6484..6b6e87f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -223,7 +223,10 @@ class StepOneBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + }is Resource.DataError -> { + } + } } } @@ -271,6 +274,10 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } @@ -312,6 +319,11 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + is Resource.DataError -> { + + } + + } } } @@ -380,6 +392,11 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } + } } } @@ -498,6 +515,10 @@ class StepOneBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index e6dcb59..6f6e658 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -341,7 +341,12 @@ class StepThreeBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } + } } @@ -397,6 +402,9 @@ class StepThreeBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 8218885..3d2b9ee 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -792,6 +792,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } @@ -834,6 +838,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } } @@ -968,6 +976,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError-> { + + } } } @@ -1064,6 +1076,9 @@ class StepTwoBajajFDFragment : BaseFragment() { } is Resource.Loading -> { + } + is Resource.DataError -> { + } } } @@ -1112,6 +1127,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1180,6 +1199,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1244,6 +1267,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1301,6 +1328,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1358,7 +1389,14 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } + + + } } @@ -1415,6 +1453,11 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + + is Resource.DataError -> { + + } } } @@ -1488,6 +1531,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } @@ -1565,6 +1612,11 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + + is Resource.DataError -> { + + } } } } @@ -1607,6 +1659,10 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.Loading -> { } + + is Resource.DataError -> { + + } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 405c1ad..b9e6037 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -3,10 +3,12 @@ package com.nivesh.production.bajajfd.util import android.app.Activity import android.app.AlertDialog 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.ContactsContract import android.util.Patterns @@ -194,11 +196,15 @@ class Common { fun handleRatesResponse(response: retrofit2.Response): Resource { try { - if (response.isSuccessful && response.body() != null) { + if (response.isSuccessful && response.body() != null) + { response.body()?.let { resultResponse -> return Resource.Success(resultResponse) } } + + + } catch (t: Throwable) { return when (t) { is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) @@ -209,5 +215,9 @@ class Common { } return Resource.Error(response.message()) } + + + + } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt index ef9662e..c8a3766 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Resource.kt @@ -1,10 +1,27 @@ package com.nivesh.production.bajajfd.util + sealed class Resource( val data:T?=null, - val message:String?=null) -{ - class Success(data: T):Resource(data) - class Error(message: String,data: T?= null):Resource(data,message) - class Loading:Resource() + var message:String?=null, + val errorCode: Int? = null, + var status: Boolean = true + +) { + class Success(data: T) : Resource(data) + class Error(message: String, data: T? = null) : Resource(data, message) + class Loading : Resource() + class DataError(errorCode: Int,message: String, data: T? = null) : Resource(null, message,errorCode) + + + override fun toString(): String { + return when (this) { + is Success<*> -> "Success[data=$data]" + is DataError -> "ErrorCode[exception=$errorCode]" + is Loading -> "Loading" + is Error -> "Error[exception=${error(Any())}]" + } + + } + } \ No newline at end of file From 4459169f33557f9cbcfd0ac728d8ed8ab63edbd5 Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 5 Jan 2023 11:15:07 +0530 Subject: [PATCH 4/8] fetch --- .../bajajfd/ui/activity/BajajFdMainActivity.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 0f5b8b0..ba07cea 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -87,7 +87,9 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { if (Common.isNetworkAvailable(this)) { val fdStepsCount = FDStepsCountRequest() fdStepsCount.FDProvider = getString(R.string.bajaj) - fdStepsCount.NiveshClientCode = "8872" + fdStepsCount.NiveshClientCode = "72682" + //hemant client code =8872 + viewModel.getStepsCount(fdStepsCount, token, this) viewModel.getStepsCountMutableData.observe(this) { response -> when (response) { @@ -138,9 +140,12 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { private fun getClientDetailsApi(stepsCount: Int) { if (Common.isNetworkAvailable(this@BajajFdMainActivity)) { val getClientDetailsRequest = getClientDetailsRequest() - getClientDetailsRequest.client_code = "8872" + getClientDetailsRequest.client_code = "72682" getClientDetailsRequest.AppOrWeb = getString(R.string.app) - getClientDetailsRequest.sub_broker_code = "1038" + getClientDetailsRequest.sub_broker_code = "3435" + + //hemant 8872/1038 + val userRequest = UserRequest() userRequest.UID = 19060 From e9d2d7a05cdce90bf3810ba840e89b0095d76a91 Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 5 Jan 2023 13:40:06 +0530 Subject: [PATCH 5/8] add --- .../production/bajajfd/interfaces/ApiInterface.kt | 10 ++++++---- .../production/bajajfd/repositories/MainRepository.kt | 4 ++-- .../bajajfd/viewModel/StepTwoBajajFDViewModel.kt | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index fd46791..c8f0758 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -146,7 +146,10 @@ interface ApiInterface { ): Response @GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj") - suspend fun bankListApi(@Header("token") token: String): Response + suspend fun bankListApi( + @Header("token") + token: String + ): Response @GET("WebApi/api/GetIFSC_Autofill") suspend fun getIFSCApi( @@ -155,12 +158,11 @@ interface ApiInterface { ): Response - @GET("WebApi/api/GetBankDetailsFromIFSC?") + @GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC") suspend fun getIFSCDetailsApi( @Query("ifsc") ifsc : String, - @Header("token") - token: String + ): Response @POST("WebApi_Bajaj/api/GetCodes") diff --git a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index 0b1ba2c..18113e3 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt @@ -80,8 +80,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun ifscCodeCheck(str: String) = apiInterface.getIFSCApi(str) - suspend fun ifscCodeDetailsCheck(str: String, token: String) = - apiInterface.getIFSCDetailsApi(str, token) + suspend fun ifscCodeDetailsCheck(str: String) = + apiInterface.getIFSCDetailsApi(str) suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = apiInterface.payModeApi(getCodeRequest, token) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 761ed89..0189913 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -143,7 +143,7 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View ) { if (Common.isNetworkAvailable(activity)) { getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeDetailsCheck(ifsc, token) + val response = mainRepository.ifscCodeDetailsCheck(ifsc) getifscCodeDetailsCheckMutableData.postValue(handleResponse(response)) } } From e1b481895d28adaed98bc89e3d85eff00b73307b Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 5 Jan 2023 14:10:24 +0530 Subject: [PATCH 6/8] commit --- .../ui/fragment/StepTwoBajajFDFragment.kt | 31 ++++++++----------- .../res/layout/fragment_bajajfd_step_two.xml | 1 + 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index d2ea3ed..adad6e2 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -924,9 +924,9 @@ class StepTwoBajajFDFragment : BaseFragment() { } private fun setUpRecyclerView() { + if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isNotEmpty()!!) { - binding.rvClientBankList.layoutManager = - LinearLayoutManager(activity as BajajFdMainActivity) + binding.rvClientBankList.layoutManager = LinearLayoutManager(activity as BajajFdMainActivity) bankListAdapter = BankListAdapter( (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 @@ -1045,34 +1045,29 @@ class StepTwoBajajFDFragment : BaseFragment() { ) binding.spTitle.setAdapter(adapter) - val titleText = - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title + val titleText = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title val newTitleText = "$titleText." - if (titleText?.isEmpty()!!) { + + + if (titleText.isNullOrEmpty()) + { + binding.spTitle.setText( adapter.getItem(0)?.Value, false ) + + } else { for (title in listOfTitle) { if (title.Value == newTitleText) { binding.spTitle.setText(title.Value, false) break } -// binding.spTitle.setOnTouchListener { v, event -> -// when (event?.action) { -// MotionEvent.ACTION_DOWN -> { -// binding.spTitle.setText( -// adapter.getItem(0)?.Value, -// false -// ) -// -// } -// } -// -// v?.onTouchEvent(event) ?: true -// } + } + + } binding.spNomineeTitle.setAdapter(adapter) diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index 20c5ec9..3ada6e5 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -943,6 +943,7 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/margin_15" android:paddingBottom="@dimen/margin_15" + android:inputType="number" android:textSize="@dimen/text_size_14" /> From 0e2035ca57b7aba9bb85abf641807c1f1ef802a1 Mon Sep 17 00:00:00 2001 From: pankaj Date: Thu, 5 Jan 2023 20:35:55 +0530 Subject: [PATCH 7/8] bank detail add --- .../bajajfd/adapter/BankListAdapter.kt | 63 +++--- .../bajajfd/model/BankValidationApiRequest.kt | 10 +- .../bajajfd/model/ClientBanklist.kt | 14 +- .../ui/fragment/StepThreeBajajFDFragment.kt | 2 + .../ui/fragment/StepTwoBajajFDFragment.kt | 199 ++++++++++++++++-- .../viewModel/StepTwoBajajFDViewModel.kt | 15 ++ app/src/main/res/drawable/ic_minus.xml | 5 + .../res/layout/fragment_bajajfd_step_two.xml | 31 ++- 8 files changed, 284 insertions(+), 55 deletions(-) create mode 100644 app/src/main/res/drawable/ic_minus.xml diff --git a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt index 2e5f4be..4f66308 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/adapter/BankListAdapter.kt @@ -7,18 +7,21 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.nivesh.production.bajajfd.R -import com.nivesh.production.bajajfd.model.BankList import com.nivesh.production.bajajfd.model.ClientBanklist class BankListAdapter( private val bankList: List?, - private val selectedAccount: String? = null + private val selectedAccount: String? = null, + private val width:Double? ) : RecyclerView.Adapter() { inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) val tvBankAccountNumber: TextView = itemView.findViewById(R.id.tvBankAccountNumber) val tvBankIFSC: TextView = itemView.findViewById(R.id.tvBankIFSC) + + + } private var checkedPosition: Int = -2 @@ -27,13 +30,23 @@ class BankListAdapter( parent: ViewGroup, viewType: Int ): BankListViewHolder { - return BankListViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.item_bank_list_preview, - parent, - false - ) - ) +// return BankListViewHolder( +// LayoutInflater.from(parent.context).inflate( +// R.layout.item_bank_list_preview, +// parent, +// false +// ) +// ) + + + + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_bank_list_preview, parent, false); + view.layoutParams = width?.div(1.35) + ?.let { ViewGroup.LayoutParams(it.toInt(),ViewGroup.LayoutParams.WRAP_CONTENT) } + return BankListViewHolder(view) + + + } override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { @@ -44,30 +57,32 @@ class BankListAdapter( holder.tvBankIFSC.text = bankList.IFSCCode holder.tvBankAccountNumber.text = bankList.AccountNumber - if (selectedAccount == bankList.AccountNumber && checkedPosition == -2 - ) { + if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2)) + { holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) checkedPosition = holder.adapterPosition - } else if (checkedPosition == -1) { + + } + else if (checkedPosition == -1) { holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) - } else if (checkedPosition == holder.adapterPosition) { + } + else if (checkedPosition == holder.adapterPosition) { holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - } else { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) } - setOnClickListener { - onItemClickListener?.let { - it(bankList) - - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - if (checkedPosition != holder.adapterPosition) { - notifyItemChanged(checkedPosition) - checkedPosition = holder.adapterPosition + else { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) + } - } + holder.itemView.setOnClickListener { + holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) + if (checkedPosition != holder.adapterPosition) { + notifyItemChanged(checkedPosition) + checkedPosition = holder.adapterPosition } } + + } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt index 10fca16..0b6ae56 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/BankValidationApiRequest.kt @@ -2,9 +2,9 @@ package com.nivesh.production.bajajfd.model data class BankValidationApiRequest( var BankAccountNo: String?="", - val BankNo: Int?= 0, - val IFSC: String?= "", - val Name: String? = "", - val PhoneNo: String? = "", - val RoleId: Int? = 0 + var BankNo: Int?= 0, + var IFSC: String?= "", + var Name: String? = "", + var PhoneNo: String? = "", + var RoleId: Int? = 0 ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt index 52e87e8..04a1ed1 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ClientBanklist.kt @@ -1,11 +1,11 @@ package com.nivesh.production.bajajfd.model data class ClientBanklist( - val AccountNumber: String?, - val AccountType: String?, - val BankName: String?, - val BranchName: String?, - val DefaultBankFlag: String?, - val IFSCCode: String?, - val IsValBank: Int? = 0 + var AccountNumber: String?="", + var AccountType: String?="", + var BankName: String?="", + var BranchName: String?="", + val DefaultBankFlag: String?="", + var IFSCCode: String?="", + var IsValBank: Int? = 0 ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt index 7260ac6..3431105 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt @@ -535,4 +535,6 @@ class StepThreeBajajFDFragment : BaseFragment() { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId } + + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 699f0ac..14e56cc 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -7,6 +7,7 @@ import android.text.Editable import android.text.InputFilter import android.text.InputFilter.LengthFilter import android.text.TextWatcher +import android.util.DisplayMetrics import android.util.Log import android.view.LayoutInflater import android.view.View @@ -50,14 +51,11 @@ import java.util.* class StepTwoBajajFDFragment : BaseFragment() { - private var _binding: FragmentBajajfdStepTwoBinding? = null private val binding get() = _binding!! - private lateinit var rbBank: RadioButton private lateinit var rbPaymentMode: RadioButton private var cal = Calendar.getInstance() - private lateinit var listOfTitle: List private lateinit var listOfGender: List private lateinit var listOfAnnualIncome: List @@ -69,10 +67,13 @@ class StepTwoBajajFDFragment : BaseFragment() { private lateinit var listOfCities: List private lateinit var listOfIFSC: MutableList + private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var bankListAdapter: BankListAdapter private lateinit var paymentModeAdapter: PaymentModeAdapter private lateinit var stateObject: DataObject + private val listOfBanks: MutableList = mutableListOf() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -523,6 +524,31 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.btnAddBank.setOnClickListener { if (validateBank()) { /// as + + val selectedOption: Int = binding.rgBank!!.checkedRadioButtonId + + val fullName= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString()) + verifyAccountNo( + binding.edtAccountNumber.text.toString(), + binding.edtIFSC.text.toString(), + fullName, + binding.edtMobileNumber.text.toString(), + 1 + + ) + + + + + + + + + + // binding.radio.findViewById(selectedOption) + + + } } @@ -532,6 +558,8 @@ class StepTwoBajajFDFragment : BaseFragment() { if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) { binding.llBankDetails.visibility = View.VISIBLE + + } else { binding.llBankDetails.visibility = View.GONE } @@ -539,15 +567,25 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.addBankDetail.setOnClickListener { if (binding.llBankDetails.visibility == View.GONE) { binding.llBankDetails.visibility = View.VISIBLE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0) + } else { binding.llBankDetails.visibility = View.GONE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0) + + + } } titleApi() +// setUpRecyclerView() + - setUpRecyclerView() + setUpRecyclerView( + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1) binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { @@ -566,11 +604,12 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.tvBankDetails.setOnClickListener { if (binding.llBankDetails.visibility == View.VISIBLE) { binding.llBankDetails.visibility = View.GONE + } else { binding.llBankDetails.visibility = View.VISIBLE + } } - binding.btnNext.setOnClickListener { if (validation()) { // Applicant Details @@ -711,11 +750,14 @@ class StepTwoBajajFDFragment : BaseFragment() { createFDApi((activity as BajajFdMainActivity).createFDRequest) } } - binding.btnBack.setOnClickListener { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 0 } + + + + } private fun createFDApi(data: CreateFDRequest) { @@ -765,7 +807,7 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun ifscCodeCheckApi(ifsc: String) { - if (ifsc.length >8) { + if (ifsc.length ==11) { stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.getifscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { @@ -884,6 +926,100 @@ class StepTwoBajajFDFragment : BaseFragment() { } + private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) { + + val bankValidationApiRequest = BankValidationApiRequest() + bankValidationApiRequest.BankAccountNo=bankAccount + bankValidationApiRequest.IFSC=Ifsc + bankValidationApiRequest.Name=name + bankValidationApiRequest.PhoneNo=phoneNumber + bankValidationApiRequest.RoleId=5 + bankValidationApiRequest.BankNo=bankNo + + + stepTwoBajajFDViewModel.bankValidationApi( + bankValidationApiRequest, + token, + activity as BajajFdMainActivity + + ) + stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + val getBankValidationApiResponse = + Gson().fromJson( + response.data?.toString(), + BankValidationApiResponse::class.java + ) + getBankValidationApiResponse.response.status_code.let { code -> + if (binding.tvAcVerify.visibility == View.GONE) { + binding.tvAcVerify.visibility = View.VISIBLE + } + + when (code) { + 200 -> { + if(getBankValidationApiResponse.Message=="Account verified") + { + val clientBanklist =ClientBanklist() + clientBanklist.AccountNumber=bankAccount + clientBanklist.AccountType="sb" + clientBanklist.BankName=binding.edtBankName.text.toString() + clientBanklist.BranchName=binding.edtBankBranch.text.toString() + clientBanklist.IFSCCode=Ifsc + clientBanklist.IsValBank=1 + + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let { + listOfBanks.addAll( + it + ) + } + listOfBanks.add(clientBanklist) + setUpRecyclerView( + listOfBanks , + clientBanklist.AccountNumber.toString()) + + } + else { + + Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + + } + + } + else -> { + Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + + + + + + + + + } + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Common.showDialogValidation(activity as BajajFdMainActivity, message) + } + } + is Resource.Loading -> { + + } + is Resource.DataError -> { + + } + } + } + + } + + + + private fun validateBank(): Boolean { return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText commonErrorAutoCompleteMethod( @@ -920,19 +1056,35 @@ class StepTwoBajajFDFragment : BaseFragment() { } } - private fun setUpRecyclerView() { - if ((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isNotEmpty()!!) { - binding.rvClientBankList.layoutManager = - LinearLayoutManager(activity as BajajFdMainActivity) - bankListAdapter = BankListAdapter( - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 + private fun setUpRecyclerView( bankList: List?, + selectedAccount: String? = null) { + + + // This code is used to get the screen dimensions of the user's device + val displayMetrics = DisplayMetrics() + requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) + val width = displayMetrics.widthPixels.toDouble() + val height = displayMetrics.heightPixels + + + binding.rvClientBankList.layoutManager = LinearLayoutManager( + mActivity, + LinearLayoutManager.HORIZONTAL, + false + ) + + + bankListAdapter = BankListAdapter( + bankList, + selectedAccount,width ) binding.rvClientBankList.adapter = bankListAdapter - } } + + + private fun datePicker(edtDOB: TextInputEditText) { val year = cal.get(Calendar.YEAR) val month = cal.get(Calendar.MONTH) @@ -1893,6 +2045,23 @@ class StepTwoBajajFDFragment : BaseFragment() { super.onDestroyView() _binding = null } + + +// private fun showHideBankDetail() { +// if (show_bank_details.getVisibility() == View.GONE) { +// show_bank_details.setVisibility(View.VISIBLE) +// addBankDetail.setCompoundDrawablesWithIntrinsicBounds( +// 0, +// 0, +// R.drawable.ic_minus_circle, +// 0 +// ) +// } else { +// show_bank_details.setVisibility(View.GONE) +// addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_add_icon, 0) +// } +// } + } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 7d5c39e..c6cb96a 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -170,4 +170,19 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } } + + + + val bankValidationApiMutableData: MutableLiveData> = MutableLiveData() + + fun bankValidationApi(bankValidationApiRequest : BankValidationApiRequest,token:String,activity : Activity) = viewModelScope.launch( + Common.handleError(activity) + ) { + if (Common.isNetworkAvailable(activity)) { + bankValidationApiMutableData.postValue(Resource.Loading()) + val response = mainRepository.bankValidationApiRequest(bankValidationApiRequest,token) + bankValidationApiMutableData.postValue(handleResponse(response)) + } + } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_minus.xml b/app/src/main/res/drawable/ic_minus.xml new file mode 100644 index 0000000..f465978 --- /dev/null +++ b/app/src/main/res/drawable/ic_minus.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_bajajfd_step_two.xml b/app/src/main/res/layout/fragment_bajajfd_step_two.xml index d8a03ba..bb1be44 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_two.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_two.xml @@ -1,5 +1,7 @@ - + android:layout_height="match_parent" + android:orientation="horizontal" + + + /> + android:text="@string/savingsAccount" + /> + android:text="@string/currentAccount" + /> @@ -949,6 +959,19 @@ + + + + Date: Thu, 5 Jan 2023 20:48:43 +0530 Subject: [PATCH 8/8] bank detail add --- .../ui/fragment/StepTwoBajajFDFragment.kt | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 14e56cc..e1be879 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -44,6 +44,7 @@ import com.nivesh.production.bajajfd.util.Common.Companion.isValidEmail import com.nivesh.production.bajajfd.util.Common.Companion.isValidName import com.nivesh.production.bajajfd.util.Common.Companion.isValidPan import com.nivesh.production.bajajfd.util.Common.Companion.removeError +import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepTwoBajajFDViewModel @@ -565,17 +566,12 @@ class StepTwoBajajFDFragment : BaseFragment() { } binding.addBankDetail.setOnClickListener { - if (binding.llBankDetails.visibility == View.GONE) { - binding.llBankDetails.visibility = View.VISIBLE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0) - + if (bankListAdapter.itemCount == 5) { + showDialogValidation(mActivity, "You Can Not Add More Than Five Account") } else { - binding.llBankDetails.visibility = View.GONE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0) - - - + showHideBankDetail() } + } @@ -977,18 +973,22 @@ class StepTwoBajajFDFragment : BaseFragment() { setUpRecyclerView( listOfBanks , clientBanklist.AccountNumber.toString()) + showHideBankDetail() + } else { - Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + showHideBankDetail() } } else -> { - Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + showHideBankDetail() @@ -2047,20 +2047,22 @@ class StepTwoBajajFDFragment : BaseFragment() { } -// private fun showHideBankDetail() { -// if (show_bank_details.getVisibility() == View.GONE) { -// show_bank_details.setVisibility(View.VISIBLE) -// addBankDetail.setCompoundDrawablesWithIntrinsicBounds( -// 0, -// 0, -// R.drawable.ic_minus_circle, -// 0 -// ) -// } else { -// show_bank_details.setVisibility(View.GONE) -// addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_add_icon, 0) -// } -// } + private fun showHideBankDetail() { + if (binding.llBankDetails.visibility == View.GONE) { + binding.llBankDetails.visibility = View.VISIBLE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0) + + } else { + binding.llBankDetails.visibility = View.GONE + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0) + } + + + + + + + } }