From 5d7e7b35e8219b1bf289d77f7bd96a30d337e68c Mon Sep 17 00:00:00 2001 From: Manoj Date: Mon, 2 Jan 2023 12:08:30 +0530 Subject: [PATCH 01/16] error pull --- .../bajajfd/ui/fragment/StepThreeBajajFDFragment.kt | 4 ++++ app/src/main/res/values/strings.xml | 3 +++ 2 files changed, 7 insertions(+) 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 775004f..4dca5c3 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 @@ -8,6 +8,7 @@ import android.graphics.Bitmap import android.net.Uri import android.os.Bundle import android.provider.MediaStore +import android.text.Editable import android.util.Log import android.view.LayoutInflater import android.view.View @@ -227,6 +228,9 @@ class StepThreeBajajFDFragment : Fragment() { private fun uploadDocument() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val documentUpload = DocumentUpload() + val value: Editable? = binding.spDocType.text + Log.e("check_Data", value.toString()) +// documentUpload.DocumentType = } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fc8ecf8..ac0eaa5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -239,6 +239,9 @@ OK Cancel Aadhar + Select Option + Gallery + Camera From dfa2401668ade17f38da24e0f71b828a837f3edb Mon Sep 17 00:00:00 2001 From: Manoj Date: Mon, 2 Jan 2023 13:22:00 +0530 Subject: [PATCH 02/16] pull request --- .../production/bajajfd/ui/activity/BajajFdMainActivity.kt | 2 +- app/src/main/res/values-hi-rIN/strings.xml | 1 + app/src/main/res/values/strings.xml | 3 --- 3 files changed, 2 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 2b41fd8..3d66c39 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 @@ -123,7 +123,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { viewModel.getStepsCountMutableData.observe(this) { response -> when (response) { is Resource.Success -> { - Log.e("response", "-->$response") + Log.e("response", "-->${response.data}") val stepsCountResponse: StepsCountResponse = Gson().fromJson(response.data?.toString(), StepsCountResponse::class.java) stepsCountResponse.Response.StatusCode.let { code -> diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 796287a..05cd45f 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -242,5 +242,6 @@ Aadhar Gallery Camera + Select Option \ 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 8c751c0..7c16532 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -240,9 +240,6 @@ OK Cancel Aadhar - Select Option - Gallery - Camera Select Option Gallery From 1cf6ec7774dc12cd35b94da4883680e45b5e28a2 Mon Sep 17 00:00:00 2001 From: Manoj Date: Mon, 2 Jan 2023 15:29:36 +0530 Subject: [PATCH 03/16] pull request --- .../bajajfd/ui/fragment/StepThreeBajajFDFragment.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 63ff3f3..499d6bd 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 @@ -72,7 +72,7 @@ class StepThreeBajajFDFragment : Fragment() { if (isSuccess) { latestTmpUri?.let { uri -> // binding.iv.setImageURI(uri) - uploadDocument() + uploadDocument(uri) } } } @@ -223,11 +223,12 @@ class StepThreeBajajFDFragment : Fragment() { binding.btnAadhaarFrontUpload.visibility = View.VISIBLE } - private fun uploadDocument() { + private fun uploadDocument(uri: Uri) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val documentUpload = DocumentUpload() val value: Editable? = binding.spDocType.text Log.e("check_Data", value.toString()) + var file_path: File? = uri.path?.let { File(it) } // documentUpload.DocumentType = } } @@ -312,7 +313,6 @@ class StepThreeBajajFDFragment : Fragment() { } - override fun onDestroyView() { super.onDestroyView() _binding = null From 366f37aff0398a63e37789e5b1521d1ae67c9b30 Mon Sep 17 00:00:00 2001 From: Manoj Date: Tue, 3 Jan 2023 17:11:05 +0530 Subject: [PATCH 04/16] upload push --- app/src/main/AndroidManifest.xml | 3 +- .../bajajfd/interfaces/ApiInterface.kt | 2 +- .../bajajfd/model/DocumentUpload.kt | 12 +- .../bajajfd/model/ResponseXXXXXXXXXXXX.kt | 8 ++ .../bajajfd/model/UploadResponse.kt | 5 + .../bajajfd/repositories/MainRepository.kt | 4 +- .../ui/activity/BajajFdMainActivity.kt | 10 +- .../ui/fragment/StepThreeBajajFDFragment.kt | 113 +++++++++++++++++- .../ui/fragment/StepTwoBajajFDFragment.kt | 23 +++- .../viewModel/StepThreeBajajFDViewModel.kt | 25 ++-- 10 files changed, 177 insertions(+), 28 deletions(-) create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt create mode 100644 app/src/main/java/com/nivesh/production/bajajfd/model/UploadResponse.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ba0157d..b149776 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,7 +6,7 @@ - + diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt index fd4ee1d..e0f8154 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt @@ -1,10 +1,10 @@ package com.nivesh.production.bajajfd.model data class DocumentUpload( - val Description: String? = null, - val DocumentType: String? = null, - val FDProvider: String? = null, - val ImageEncodeToBase64: String? = null, - val NiveshClientCode: String? = null, - val UniqueId: String? = null + var Description: String? = null, + var DocumentType: String? = null, + var FDProvider: String? = null, + var ImageEncodeToBase64: String? = null, + var NiveshClientCode: String? = null, + var UniqueId: String? = null ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt new file mode 100644 index 0000000..972a79e --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt @@ -0,0 +1,8 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXXXX( + val Errors: Any, + val Message: String, + val Status: String, + val StatusCode: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/UploadResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/UploadResponse.kt new file mode 100644 index 0000000..a9a1560 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/UploadResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class UploadResponse( + val Response: ResponseXXXXXXXXXXXX +) \ No newline at end of file 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 65beecc..eaa60f1 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 @@ -26,8 +26,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) = apiInterface.createFDApp(createFDRequest, token) - suspend fun documentsUploadResponse(getRatesRequest: GetRatesRequest, token: String) = - apiInterface.getRates(getRatesRequest, token) + suspend fun documentsUploadResponse(documentUpload: DocumentUpload, token: String) = + apiInterface.documentsUpload(documentUpload, token) suspend fun saveFDOtherDataResponse(getRatesRequest: GetRatesRequest, token: String) = apiInterface.getRates(getRatesRequest, token) 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 5ea057e..3cdc734 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 @@ -352,13 +352,13 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { // step 2 response override fun stepTwoApi(data: CreateFDRequest) { Log.e("stepTwoApi", " response ---> $data") - if (stepCount == 4) { - // go to step 3 image Upload - binding.viewPager.currentItem = 2 - }else{ +// if (stepCount == 4) { +// // go to step 3 image Upload +// binding.viewPager.currentItem = 2 +// }else{ // call create fd api bypass step 3 createFDApi(data , 2) - } +// } } 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 499d6bd..18b7f85 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 @@ -1,14 +1,18 @@ package com.nivesh.production.bajajfd.ui.fragment import android.Manifest +import android.annotation.SuppressLint import android.app.ActionBar.LayoutParams import android.app.Dialog import android.content.pm.PackageManager +import android.database.Cursor import android.graphics.Bitmap import android.net.Uri import android.os.Bundle import android.provider.MediaStore +import android.provider.OpenableColumns import android.text.Editable +import android.util.Base64 import android.util.Log import android.view.LayoutInflater import android.view.View @@ -17,6 +21,7 @@ import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.ImageView import android.widget.TextView +import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.core.app.ActivityCompat @@ -36,6 +41,9 @@ import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel import java.io.File +import java.io.FileInputStream +import java.io.IOException +import java.io.InputStream class StepThreeBajajFDFragment : Fragment() { @@ -48,6 +56,7 @@ class StepThreeBajajFDFragment : Fragment() { private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var dialog: Dialog + private lateinit var front: String companion object { fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { @@ -99,6 +108,7 @@ class StepThreeBajajFDFragment : Fragment() { binding.btnNext.setOnClickListener { if (validate()) { + uploadDocApi() // // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) } @@ -128,6 +138,30 @@ class StepThreeBajajFDFragment : Fragment() { return root } + @SuppressLint("Range") + fun getFileName(uri: Uri): String? { + var result: String? = null + if (uri.scheme == "content") { + val cursor: Cursor = + requireActivity().getContentResolver().query(uri, null, null, null, null)!! + try { + if (cursor != null && cursor.moveToFirst()) { + result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)) + } + } finally { + cursor.close() + } + } + if (result == null) { + result = uri.path + val cut = result!!.lastIndexOf('/') + if (cut != -1) { + result = result.substring(cut + 1) + } + } + return result + } + private fun selectImage() { dialog = Dialog(activity as BajajFdMainActivity) dialog.setContentView(R.layout.camera_gallery_layout) @@ -227,12 +261,87 @@ class StepThreeBajajFDFragment : Fragment() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val documentUpload = DocumentUpload() val value: Editable? = binding.spDocType.text - Log.e("check_Data", value.toString()) + val file_dir:File = requireActivity().cacheDir + val file_ex = File(file_dir.toString().plus("/").plus(getFileName(uri))) var file_path: File? = uri.path?.let { File(it) } + encodedFileToBase64(file_ex) + + Log.e("check_data_front", value.toString()+"\n"+front) // documentUpload.DocumentType = } } + private fun encodedFileToBase64(fileName: File?) { + front = try { + val bytes: ByteArray? = fileName?.let { loadFile(it) } + Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } + .replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") + } catch (e: Exception) { + e.printStackTrace() + "" + } + } + + @Throws(IOException::class) + private fun loadFile(file: File): ByteArray? { + val inputStream: InputStream = FileInputStream(file) + val length = file.length() + val bytes = ByteArray(length.toInt()) + var offset = 0 + var numRead = 0 + while (offset < bytes.size && inputStream.read(bytes, offset, bytes.size - offset).also { + numRead = it + } >= 0) { + offset += numRead + } + if (offset < bytes.size) { + throw IOException("Could not completely read file " + file.name) + } + inputStream.close() + return bytes + } + + private fun uploadDocApi(){ + if(Common.isNetworkAvailable((activity as BajajFdMainActivity))){ + val du = DocumentUpload() + du.Description = "PAN" + du.DocumentType = "PAN" + du.FDProvider = "Bajaj" + du.ImageEncodeToBase64 = front //"data:image/png;base64" + du.NiveshClientCode = "8872" + du.UniqueId = "5463772498" + stepThreeBajajFDViewModel.documentsUpload(du,Constants.token) + stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner){ response -> + when (response){ + is Resource.Success ->{ + Log.e("response", "-->$response") + val getUploadResponse: UploadResponse = + Gson().fromJson(response.data?.toString(),UploadResponse::class.java) + getUploadResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + Log.e("check_upload_res",response.message.toString()) + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + + } + } + private fun docTypeApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -286,7 +395,7 @@ class StepThreeBajajFDFragment : Fragment() { private fun validate(): Boolean { - return false + return true } private fun takeImage() { 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 ce8d2a9..432b4de 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 @@ -68,6 +68,7 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var stepTwoBajajFDViewModel: StepTwoBajajFDViewModel private lateinit var bankListAdapter: BankListAdapter private lateinit var stateObject: DataObject + private var retryCount: Int = 0 companion object { fun getInstance(fdInterface: BajajFDInterface): StepTwoBajajFDFragment { @@ -969,6 +970,7 @@ class StepTwoBajajFDFragment : Fragment() { getCodeResponse.Response.StatusCode.let { code -> when (code) { 200 -> { + retryCount = 0 listOfTitle = getCodeResponse.Response.GetCodesList if (listOfTitle.isNotEmpty()) { val adapter = ArrayAdapter( @@ -1022,8 +1024,9 @@ class StepTwoBajajFDFragment : Fragment() { stateListApi() } - // 650 -> refreshToken() - else -> {} + 650 -> refreshToken() + else -> { + } } } } @@ -1042,6 +1045,14 @@ class StepTwoBajajFDFragment : Fragment() { } } + private fun refreshToken() { +// retryCount++ +// if(retryCount<=2){ +// titleApi() +// } + + } + private fun genderApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() @@ -1059,6 +1070,7 @@ class StepTwoBajajFDFragment : Fragment() { getCodeResponse.Response.StatusCode.let { code -> when (code) { 200 -> { + retryCount = 0 listOfGender = getCodeResponse.Response.GetCodesList if (listOfGender.isNotEmpty()) { val adapter = ArrayAdapter( @@ -1074,7 +1086,12 @@ class StepTwoBajajFDFragment : Fragment() { } } // 650 -> refreshToken() - else -> {} + else -> { + retryCount++ + if(retryCount<=2){ + genderApi() + } + } } } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt index ed0803b..ff04ab3 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt @@ -2,22 +2,16 @@ package com.nivesh.production.bajajfd.viewModel import androidx.lifecycle.* import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.DocumentUpload import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch +import retrofit2.Response class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - private val getRatesMutableData: MutableLiveData> = MutableLiveData() - - fun documentsUpload(getRatesRequest: GetRatesRequest, token: String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.documentsUploadResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) - } - private fun handleRatesResponse(response: retrofit2.Response): Resource { if (response.isSuccessful) { response.body()?.let { resultResponse -> @@ -25,7 +19,15 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi } } return Resource.Error(response.message()) + } + private fun handleUploadResponse(response: retrofit2.Response): Resource { + if(response.isSuccessful){ + response.body()?.let { resultResponse -> + return Resource.Success(resultResponse) + } + } + return Resource.Error(response.message()) } val getTitleMutableData: MutableLiveData> = MutableLiveData() @@ -35,5 +37,12 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi getTitleMutableData.postValue(handleRatesResponse(response)) } + val getDocumentUploadMutableData: MutableLiveData> = MutableLiveData() + fun documentsUpload(documentUpload: DocumentUpload, token: String) = viewModelScope.launch { + getDocumentUploadMutableData.postValue(Resource.Loading()) + val response = mainRepository.documentsUploadResponse(documentUpload, token) + getDocumentUploadMutableData.postValue(handleUploadResponse(response)) + } + } \ No newline at end of file From 938a3811fec8d3bfd942e9e6d17a882b4e9709e7 Mon Sep 17 00:00:00 2001 From: Manoj Date: Tue, 3 Jan 2023 17:59:26 +0530 Subject: [PATCH 05/16] pull request --- .../production/bajajfd/ui/activity/BajajFdMainActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 b84da5e..2a130cb 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 @@ -389,7 +389,7 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { // binding.viewPager.currentItem = 2 // }else{ // call create fd api bypass step 3 - createFDApi(data , 2) + createFDApi(data , 2,"2") // } } From 6591570ec29389a0d5497b26c4fc6bb3874a184a Mon Sep 17 00:00:00 2001 From: Manoj Date: Tue, 3 Jan 2023 19:27:35 +0530 Subject: [PATCH 06/16] upload --- .../production/bajajfd/api/ApiClient.kt | 25 +++++++++++++ .../bajajfd/model/ResponseXXXXXXXXXXXX.kt | 4 ++- .../ui/fragment/StepThreeBajajFDFragment.kt | 9 +++-- app/src/main/res/raw/my_certificate.cer | 35 +++++++++++++++++++ 4 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/raw/my_certificate.cer 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..b9452d4 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,11 +1,19 @@ package com.nivesh.production.bajajfd.api +import android.content.Context +import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.interfaces.ApiInterface import com.nivesh.production.bajajfd.util.Constants.Companion.BASE_URL import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory +import java.security.KeyStore +import java.security.SecureRandom +import java.util.* +import java.util.concurrent.TimeUnit +import javax.net.ssl.* + class ApiClient { companion object { @@ -16,8 +24,25 @@ class ApiClient { 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() + check(!(trustManagers.size != 1 || trustManagers[0] !is X509TrustManager)) { + "Unexpected default trust managers:" + Arrays.toString( + trustManagers + ) + } + val trustManager: X509TrustManager = trustManagers[0] as X509TrustManager + val sslContext = SSLContext.getInstance("SSL") + sslContext.init(null, arrayOf(trustManager), null) + val sslSocketFactory: SSLSocketFactory = sslContext.socketFactory + val client = OkHttpClient.Builder() .addInterceptor(logging) + .sslSocketFactory(sslSocketFactory, trustManager) .retryOnConnectionFailure(true) .build() Retrofit.Builder() diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt index 4bacf38..187adc4 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXXX.kt @@ -1,7 +1,9 @@ package com.nivesh.production.bajajfd.model +import com.nivesh.production.bajajfd.util.Resource + data class ResponseXXXXXXXXXXXX( - val Errors: Any, + val Errors: List, val FDDataResponse: FDDataResponse, val Message: String, val Status: String, 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 f03e175..8ea3c27 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 @@ -308,9 +308,14 @@ class StepThreeBajajFDFragment : BaseFragment() { du.DocumentType = "PAN" du.FDProvider = "Bajaj" du.ImageEncodeToBase64 = front //"data:image/png;base64" - du.NiveshClientCode = "8872" - du.UniqueId = "5463772498" + du.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + du.UniqueId = uniqueId stepThreeBajajFDViewModel.documentsUpload(du,Constants.token) + + val gson = Gson() + val jsonString = gson.toJson(DocumentUpload()) + Log.e("check_request_json",jsonString) + stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner){ response -> when (response){ is Resource.Success ->{ diff --git a/app/src/main/res/raw/my_certificate.cer b/app/src/main/res/raw/my_certificate.cer new file mode 100644 index 0000000..a09b782 --- /dev/null +++ b/app/src/main/res/raw/my_certificate.cer @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGLDCCBRSgAwIBAgIRAOC8oou3uiOKidLRgPxPMbIwDQYJKoZIhvcNAQELBQAw +gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO +BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE +AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD +QTAeFw0yMTEyMTAwMDAwMDBaFw0yMzAxMTAyMzU5NTlaMBcxFTATBgNVBAMMDCou +bml2ZXNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN6WeYgq +GOpEvmY7KJKAi4mcdnH7L/2+Cxe2gVlq9vpFmnqFiPZS1JXCo2L8xSq6/Hxkiwkw +JMvGTCK+fhN4Zs/eYQ3fWeWv+AkRCs5/H6LxtsNuOxLiNNSUPqyT5yWkA7KK8uyo +ocE2qmOikqZWuWGjHoY+LiWE0Vb+iK8+XiP7EE+hrqB3UrW6WytxNF4yMmmNPmof +Cqhxh66DV1C6YhC4PMuqjtS811r9tfLp9GP2zwWAEFmUFP29UiNGuqp5r2Js5Vn8 +tJbVo5NKl+paCSRRqWt94iBn9iaVeKaaKd0vgXzD4KhXPAn3SkTutRjS14uSHIxu +2rDreclJrv1ylZECAwEAAaOCAvgwggL0MB8GA1UdIwQYMBaAFI2MXsRUrYrhd+mb ++ZsF4bgBjWHhMB0GA1UdDgQWBBSEO7RmJP+bzz6mTVBA+XsF6a/7vTAOBgNVHQ8B +Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB +BQUHAwIwSQYDVR0gBEIwQDA0BgsrBgEEAbIxAQICBzAlMCMGCCsGAQUFBwIBFhdo +dHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBAgEwgYQGCCsGAQUFBwEBBHgw +djBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNB +RG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYX +aHR0cDovL29jc3Auc2VjdGlnby5jb20wIwYDVR0RBBwwGoIMKi5uaXZlc2guY29t +ggpuaXZlc2guY29tMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdgCt9776fP8Q +yIudPZwePhhqtGcpXc+xDCTKhYY069yCigAAAX2i87C2AAAEAwBHMEUCIQDHdsDn +kA3ktyMxce/FRtb61TpIkZQjhMDFoRzVMOSghgIgcawr75bc9bnT5RzuPVd8es1R +8euvGvaIUWveW3LNmFIAdQB6MoxU2LcttiDqOOBSHumEFnAyE4VNO9IrwTpXo1Lr +UgAAAX2i87B0AAAEAwBGMEQCIA75W33zs9u3tKLjTiFOAclYDaWbOS/GoE179wr2 +d4jKAiBZp0TnvFa1+I4jC9faot83PqClumyl3QRwR3CeAfMgsQB1AOg+0No+9QY1 +MudXKLyJa8kD08vREWvs62nhd31tBr1uAAABfaLzsE8AAAQDAEYwRAIgOitVc+nj +J5gkft/VKRP0w2ZxChHC0yEgPJzMC8KmnQMCIBcRmGBcpN+vQXL0t7gSTrIGTjAJ +jxJptQfLsPXJ3/sBMA0GCSqGSIb3DQEBCwUAA4IBAQCq2CbjmPky6ISXzM86kD2n +7lakrVoo5QpJhopWhr0bp+Bf3+I2l2ZIEtCP9/z1zVIGfPXxEGsvYB+gxi4t0YDy +8v+tiNxzOG6rhHSgs9SVhfFb/iFp3n2RtD4iezvGsiSjp7KiSCaV1gknlQlC09eJ +b6mNk2cDHaABfyRFIDZRvZ69rn9pRKHGWdIoGcrFNovWOaOeN+I46G54Vfy3VS+3 +PeVBU6ziRGIQ0oq0kPWbv8wKYz+dTKsO/NhhRXwr5LFLd2HdAXKnGTqSgcjXGqar +n9MRJA9rm6+fKz7sRaGd4daJIKRb5QDAv46tpzKYoLt3/hrn0mZwiiiu0kp7XuOQ +-----END CERTIFICATE----- From 55a3656439d436f81accf1c63bd4052e02174b61 Mon Sep 17 00:00:00 2001 From: Manoj Date: Wed, 4 Jan 2023 16:10:27 +0530 Subject: [PATCH 07/16] camera or gallery upload --- .../ui/fragment/StepThreeBajajFDFragment.kt | 197 +++++++++--------- .../layout/fragment_bajajfd_step_three.xml | 10 - app/src/main/res/values/strings.xml | 7 - 3 files changed, 104 insertions(+), 110 deletions(-) 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 8ea3c27..870ecc0 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 @@ -6,10 +6,8 @@ import android.app.ActionBar.LayoutParams import android.app.Dialog import android.content.pm.PackageManager import android.database.Cursor -import android.graphics.Bitmap import android.net.Uri import android.os.Bundle -import android.provider.MediaStore import android.provider.OpenableColumns import android.text.Editable import android.util.Base64 @@ -17,17 +15,11 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.AdapterView -import android.widget.ArrayAdapter -import android.widget.ImageView -import android.widget.TextView -import android.widget.Toast +import android.widget.* import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts -import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.core.content.FileProvider -import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import com.google.gson.Gson import com.nivesh.production.bajajfd.BuildConfig @@ -57,6 +49,13 @@ class StepThreeBajajFDFragment : BaseFragment() { private var uniqueId: String? = "" private lateinit var dialog: Dialog private lateinit var front: String + private var takeImageResult: ActivityResultLauncher? = null + private var selectImageIntent: ActivityResultLauncher? = null + private var fileExt: String? = null + private val mapImage: HashMap = HashMap() + private var selectdImage: String? = null + private var checkPANUploadFile: Boolean? = false + private var checkPhotoUploadFile: Boolean? = false companion object { fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { @@ -70,22 +69,6 @@ class StepThreeBajajFDFragment : BaseFragment() { bajajFDInterface = bajajFDInterfaces } - private val selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) - { uri -> - val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri) - binding.iv.setImageBitmap(bitmap) - } - - private val takeImageResult = - registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> - if (isSuccess) { - latestTmpUri?.let { uri -> -// binding.iv.setImageURI(uri) - uploadDocument(uri) - } - } - } - private val requestPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() ) { isGranted: Boolean -> @@ -106,9 +89,29 @@ class StepThreeBajajFDFragment : BaseFragment() { val root = binding.root stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel + selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) + { uri: Uri? -> + if (uri != null) { + uploadDocument(uri) + } + } + + takeImageResult = + registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> + if (isSuccess) { + latestTmpUri?.let { uri -> + uploadDocument(uri) + } + } + } + binding.btnNext.setOnClickListener { if (validate()) { - uploadDocApi() + var uploadPosition = 0 + for (entry in mapImage.iterator()) { + uploadPosition++ + uploadDocApi(entry.key, entry.value, uploadPosition) + } // // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) } @@ -117,8 +120,28 @@ class StepThreeBajajFDFragment : BaseFragment() { (activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 } + binding.btnPANUpload.setOnClickListener { + checkPANUploadFile = true + checkPhotoUploadFile = false + selectImage("PAN") + } + + binding.btnPhotoUpload.setOnClickListener { + checkPhotoUploadFile = true + checkPANUploadFile = false + selectImage("Photograph") + } + binding.btnAadhaarFrontUpload.setOnClickListener { - selectImage() + checkPANUploadFile = false + checkPhotoUploadFile = false + selectImage(binding.spDocType.text.toString()) + } + + binding.btnAadhaarBackUpload.setOnClickListener { + checkPANUploadFile = false + checkPhotoUploadFile = false + selectImage(binding.spDocType.text.toString()) } binding.spDocType.onItemClickListener = @@ -162,7 +185,8 @@ class StepThreeBajajFDFragment : BaseFragment() { return result } - private fun selectImage() { + private fun selectImage(fileType: String) { + selectdImage = fileType dialog = Dialog(activity as BajajFdMainActivity) dialog.setContentView(R.layout.camera_gallery_layout) val ivCut: ImageView = dialog.findViewById(R.id.ivCut) @@ -175,55 +199,31 @@ class StepThreeBajajFDFragment : BaseFragment() { tvGallery.setOnClickListener { dialog.cancel() - when { - ContextCompat.checkSelfPermission( - activity as BajajFdMainActivity, + val permission = ContextCompat.checkSelfPermission( + activity as BajajFdMainActivity, + Manifest.permission.READ_EXTERNAL_STORAGE + ) + if (permission == PackageManager.PERMISSION_GRANTED) { + selectImageIntent?.launch("image/*") + } else { + requestPermission.launch( Manifest.permission.READ_EXTERNAL_STORAGE - ) == PackageManager.PERMISSION_GRANTED -> { - selectImageIntent.launch("image/*") - } - - ActivityCompat.shouldShowRequestPermissionRationale( - activity as BajajFdMainActivity, - Manifest.permission.READ_EXTERNAL_STORAGE - ) -> { - requestPermission.launch( - Manifest.permission.READ_EXTERNAL_STORAGE - ) - } - - else -> { - requestPermission.launch( - Manifest.permission.READ_EXTERNAL_STORAGE - ) - } + ) } } tvCamera.setOnClickListener { dialog.cancel() - when { - ContextCompat.checkSelfPermission( - activity as BajajFdMainActivity, - Manifest.permission.CAMERA - ) == PackageManager.PERMISSION_GRANTED -> { - takeImage() - } - - ActivityCompat.shouldShowRequestPermissionRationale( - activity as BajajFdMainActivity, + val permission = ContextCompat.checkSelfPermission( + activity as BajajFdMainActivity, + Manifest.permission.CAMERA + ) + if (permission == PackageManager.PERMISSION_GRANTED) { + takeImage() + } else { + requestPermission.launch( Manifest.permission.CAMERA - ) -> { - requestPermission.launch( - Manifest.permission.CAMERA - ) - } - - else -> { - requestPermission.launch( - Manifest.permission.CAMERA - ) - } + ) } } @@ -261,13 +261,19 @@ class StepThreeBajajFDFragment : BaseFragment() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val documentUpload = DocumentUpload() val value: Editable? = binding.spDocType.text - val file_dir:File = requireActivity().cacheDir + val file_dir: File = requireActivity().cacheDir val file_ex = File(file_dir.toString().plus("/").plus(getFileName(uri))) + fileExt = file_ex.extension var file_path: File? = uri.path?.let { File(it) } encodedFileToBase64(file_ex) - Log.e("check_data_front", value.toString()+"\n"+front) -// documentUpload.DocumentType = + if (checkPANUploadFile == true || checkPhotoUploadFile == true) { + mapImage["Main ".plus(selectdImage)] = front + } else { + selectdImage?.let { mapImage.put(it, front) } + } + + Log.e("check_data_front", value.toString() + "\n" + front) } } @@ -301,31 +307,37 @@ class StepThreeBajajFDFragment : BaseFragment() { return bytes } - private fun uploadDocApi(){ - if(Common.isNetworkAvailable((activity as BajajFdMainActivity))){ + private fun uploadDocApi(key: String, imageBase64: String, uploadPosition: Int) { + if (Common.isNetworkAvailable((activity as BajajFdMainActivity))) { val du = DocumentUpload() - du.Description = "PAN" - du.DocumentType = "PAN" - du.FDProvider = "Bajaj" - du.ImageEncodeToBase64 = front //"data:image/png;base64" - du.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE + du.Description = key + du.DocumentType = key + du.FDProvider = getString(R.string.bajaj) + du.ImageEncodeToBase64 = + "data:image/" + "." + fileExt + ";base64,".plus(imageBase64) //"data:image/png;base64" + du.NiveshClientCode = + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE du.UniqueId = uniqueId - stepThreeBajajFDViewModel.documentsUpload(du,Constants.token) + stepThreeBajajFDViewModel.documentsUpload(du, Constants.token) - val gson = Gson() - val jsonString = gson.toJson(DocumentUpload()) - Log.e("check_request_json",jsonString) - - stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner){ response -> - when (response){ - is Resource.Success ->{ + stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { Log.e("response", "-->$response") val getUploadResponse: UploadResponse = - Gson().fromJson(response.data?.toString(),UploadResponse::class.java) + Gson().fromJson(response.data?.toString(), UploadResponse::class.java) getUploadResponse.Response.StatusCode.let { code -> when (code) { 200 -> { - Log.e("check_upload_res",response.message.toString()) + Log.e("check_upload_res", response.message.toString()) +// if (uploadPosition == mapImage.size) { + Toast.makeText( + requireActivity(), + "".plus(mapImage.size.toString() + " Last Image Uploaded ") + + uploadPosition, + Toast.LENGTH_LONG + ).show() +// } } // 650 -> refreshToken() else -> {} @@ -343,7 +355,6 @@ class StepThreeBajajFDFragment : BaseFragment() { } } } - } } @@ -412,7 +423,7 @@ class StepThreeBajajFDFragment : BaseFragment() { lifecycleScope.launchWhenStarted { getTmpFileUri().let { uri -> latestTmpUri = uri - takeImageResult.launch(uri) + takeImageResult?.launch(uri) } } } @@ -438,6 +449,6 @@ class StepThreeBajajFDFragment : BaseFragment() { } fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { - uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId + uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index 1e251d4..414f457 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -234,16 +234,6 @@ app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload" app:layout_constraintVertical_bias="0.406" /> - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d4243c5..cc8f64b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -248,11 +248,4 @@ CustomerCategory PAY - - Aadhaar Card - PAN - Voter Id - Driving Licence - - \ No newline at end of file From 5123585a9f1f6544b9ff2f6d0829fd1f0116133d Mon Sep 17 00:00:00 2001 From: Manoj Date: Wed, 4 Jan 2023 16:35:38 +0530 Subject: [PATCH 08/16] upload changes --- .../bajajfd/ui/fragment/StepThreeBajajFDFragment.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 870ecc0..13dcd07 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 @@ -110,7 +110,9 @@ class StepThreeBajajFDFragment : BaseFragment() { var uploadPosition = 0 for (entry in mapImage.iterator()) { uploadPosition++ - uploadDocApi(entry.key, entry.value, uploadPosition) + if(entry.key.contains("Main ")) + uploadDocApi(entry.key.replace("Main ",""), entry.value, uploadPosition) + else uploadDocApi(entry.key, entry.value, uploadPosition) } // // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) From 8eb5a90386af6adcca795f0f2d4c59e4a7a980de Mon Sep 17 00:00:00 2001 From: Manoj Date: Wed, 4 Jan 2023 18:30:05 +0530 Subject: [PATCH 09/16] after upload changes --- .../nivesh/production/bajajfd/model/GetCodes.kt | 3 --- .../bajajfd/ui/activity/BajajFdMainActivity.kt | 5 ----- .../ui/fragment/StepThreeBajajFDFragment.kt | 17 ++++++++++++++--- app/src/main/res/values-hi-rIN/strings.xml | 1 - app/src/main/res/values-night/strings.xml | 1 + 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt index 6741a5c..1ac69ed 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt @@ -8,7 +8,4 @@ data class GetCodes( override fun toString(): String { return Label } - - - } \ 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 2982565..931d3a9 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 @@ -32,7 +32,6 @@ import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.* - class BajajFdMainActivity : BaseActivity(), BajajFDInterface { lateinit var binding: ActivityBajajFdBinding private lateinit var viewModel: BajajFDViewModel @@ -369,10 +368,8 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { } } } - } - // set background for selected/ default step private fun setBackground( drawable: Drawable?, @@ -547,7 +544,5 @@ class BajajFdMainActivity : BaseActivity(), BajajFDInterface { override fun onPageFinished(view: WebView, url: String) { super.onPageFinished(view, url) } - } - } \ 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 e57c40a..2ef0685 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 @@ -151,7 +151,7 @@ class StepThreeBajajFDFragment : BaseFragment() { AdapterView.OnItemClickListener { parent, _, position, _ -> val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes - when (getCodes.Value) { + when (getCodes.Label) { resources.getString(R.string.aadhar) -> setAadhaarUploadLayout() else -> { @@ -311,7 +311,7 @@ class StepThreeBajajFDFragment : BaseFragment() { stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - Log.e("UploadImage", "Response-->"+response.data.toString()) + Log.e("UploadImage", "Response-->" + response.data.toString()) val getUploadResponse: UploadResponse = Gson().fromJson(response.data?.toString(), UploadResponse::class.java) getUploadResponse.Response.StatusCode.let { code -> @@ -410,7 +410,18 @@ class StepThreeBajajFDFragment : BaseFragment() { private fun validate(): Boolean { - return true + if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 4) { + return true + } else if (mapImage.size == 3) { + return true + } else if (mapImage.size < 3) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload Image Not Done" + ) + return false + } + return false } private fun takeImage() { diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 1edf775..86039fa 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -244,7 +244,6 @@ Select Option Gallery Camera - Select Option PaymentMode CustomerCategory PAY diff --git a/app/src/main/res/values-night/strings.xml b/app/src/main/res/values-night/strings.xml index d495c0f..67f71fe 100644 --- a/app/src/main/res/values-night/strings.xml +++ b/app/src/main/res/values-night/strings.xml @@ -1,4 +1,5 @@ Add New Account + Aadhar \ No newline at end of file From 13cca65437ca5d599d4fd6d1ea4b44cddbbbc2d3 Mon Sep 17 00:00:00 2001 From: Manoj Date: Wed, 4 Jan 2023 18:58:00 +0530 Subject: [PATCH 10/16] add upload validation --- .../ui/fragment/StepThreeBajajFDFragment.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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 2ef0685..4fd2b8b 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 @@ -410,17 +410,22 @@ class StepThreeBajajFDFragment : BaseFragment() { private fun validate(): Boolean { - if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 4) { - return true - } else if (mapImage.size == 3) { - return true - } else if (mapImage.size < 3) { + if (mapImage.size == 3 && binding.spDocType.text.equals(R.string.aadhar)) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload Aadhar Images" + ) + return false + } + else if (mapImage.size < 3) { Common.showDialogValidation( activity as BajajFdMainActivity, - "Upload Image Not Done" + "Upload All Images" ) return false } + else return true + return false } From 9e6ffe5706e2b8eb4c6a16b3b367a9ff080984b0 Mon Sep 17 00:00:00 2001 From: Manoj Date: Thu, 5 Jan 2023 11:57:47 +0530 Subject: [PATCH 11/16] upload check --- .../ui/fragment/StepThreeBajajFDFragment.kt | 46 +++++++++++---- .../res/drawable/ic_baseline_check_24.xml | 5 ++ .../layout/fragment_bajajfd_step_three.xml | 59 ++++++++++++++++++- 3 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_check_24.xml 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 4fd2b8b..fd32e18 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 @@ -58,6 +58,12 @@ class StepThreeBajajFDFragment : BaseFragment() { private var checkPANUploadFile: Boolean? = false private var checkPhotoUploadFile: Boolean? = false + var actionType: AccountCaptureType? = null + + enum class AccountCaptureType { + MAIN_PAN_UPLOAD,MAIN_PHOTO_UPLOAD,FIRST_UPLOAD,SECOND_UPLOAD + } + companion object { fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { val stepTwoFragment = StepThreeBajajFDFragment() @@ -80,7 +86,6 @@ class StepThreeBajajFDFragment : BaseFragment() { } } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -126,24 +131,28 @@ class StepThreeBajajFDFragment : BaseFragment() { binding.btnPANUpload.setOnClickListener { checkPANUploadFile = true checkPhotoUploadFile = false + actionType = AccountCaptureType.MAIN_PAN_UPLOAD selectImage("PAN") } binding.btnPhotoUpload.setOnClickListener { checkPhotoUploadFile = true checkPANUploadFile = false + actionType = AccountCaptureType.MAIN_PHOTO_UPLOAD selectImage("Photograph") } binding.btnAadhaarFrontUpload.setOnClickListener { checkPANUploadFile = false checkPhotoUploadFile = false + actionType = AccountCaptureType.FIRST_UPLOAD selectImage(binding.spDocType.text.toString()) } binding.btnAadhaarBackUpload.setOnClickListener { checkPANUploadFile = false checkPhotoUploadFile = false + actionType = AccountCaptureType.SECOND_UPLOAD selectImage(binding.spDocType.text.toString()) } @@ -164,6 +173,7 @@ class StepThreeBajajFDFragment : BaseFragment() { return root } + @SuppressLint("Range") fun getFileName(uri: Uri): String { var result = "" @@ -262,6 +272,15 @@ class StepThreeBajajFDFragment : BaseFragment() { } else { selectedImage?.let { mapImage.put(it, front) } } + + when(actionType){ + AccountCaptureType.MAIN_PAN_UPLOAD -> binding.ivPan.visibility = View.VISIBLE + AccountCaptureType.MAIN_PHOTO_UPLOAD -> binding.ivPhotograph.visibility = View.VISIBLE + AccountCaptureType.FIRST_UPLOAD -> binding.ivAadharFront.visibility = View.VISIBLE + else ->{ + binding.ivAadharBack.visibility = View.VISIBLE + } + } } } @@ -410,23 +429,26 @@ class StepThreeBajajFDFragment : BaseFragment() { private fun validate(): Boolean { - if (mapImage.size == 3 && binding.spDocType.text.equals(R.string.aadhar)) { + if (binding.spDocType.text.equals(R.string.aadhar) && mapImage.size < 3) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload Aadhar Images" + ) + return false + } else if (!binding.spDocType.text.equals(R.string.aadhar) && mapImage.size == 3) { Common.showDialogValidation( activity as BajajFdMainActivity, "Upload Aadhar Images" ) return false + } else if (mapImage.size < 3) { + Common.showDialogValidation( + activity as BajajFdMainActivity, + "Upload All Images" + ) + return false } - else if (mapImage.size < 3) { - Common.showDialogValidation( - activity as BajajFdMainActivity, - "Upload All Images" - ) - return false - } - else return true - - return false + return true } private fun takeImage() { diff --git a/app/src/main/res/drawable/ic_baseline_check_24.xml b/app/src/main/res/drawable/ic_baseline_check_24.xml new file mode 100644 index 0000000..ed4b532 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_check_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_bajajfd_step_three.xml b/app/src/main/res/layout/fragment_bajajfd_step_three.xml index 414f457..d5a4250 100644 --- a/app/src/main/res/layout/fragment_bajajfd_step_three.xml +++ b/app/src/main/res/layout/fragment_bajajfd_step_three.xml @@ -109,11 +109,25 @@ android:textColor="@color/black" app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.925" + app:layout_constraintHorizontal_bias="0.78" app:layout_constraintStart_toEndOf="@+id/tvPAN" app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument" tools:ignore="DuplicateSpeakableTextCheck" /> + + + + + +