|
|
@ -4,13 +4,11 @@ import android.Manifest |
|
|
|
import android.annotation.SuppressLint |
|
|
|
import android.app.ActionBar.LayoutParams |
|
|
|
import android.app.Dialog |
|
|
|
import android.content.Intent |
|
|
|
import android.content.pm.PackageManager |
|
|
|
import android.database.Cursor |
|
|
|
import android.graphics.Bitmap |
|
|
|
import android.graphics.BitmapFactory |
|
|
|
import android.net.Uri |
|
|
|
import android.os.Build |
|
|
|
import android.os.Bundle |
|
|
|
import android.provider.OpenableColumns |
|
|
|
import android.util.Base64 |
|
|
@ -21,7 +19,6 @@ import android.view.ViewGroup |
|
|
|
import android.widget.* |
|
|
|
import androidx.activity.result.ActivityResultLauncher |
|
|
|
import androidx.activity.result.contract.ActivityResultContracts |
|
|
|
import androidx.annotation.RequiresApi |
|
|
|
import androidx.core.content.ContextCompat |
|
|
|
import androidx.core.content.FileProvider |
|
|
|
import androidx.lifecycle.ViewModelProvider |
|
|
@ -36,6 +33,7 @@ import com.nivesh.production.bajajfd.repositories.MainRepository |
|
|
|
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity |
|
|
|
import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory |
|
|
|
import com.nivesh.production.bajajfd.util.Common |
|
|
|
import com.nivesh.production.bajajfd.util.Common.Companion.getFileExtension |
|
|
|
import com.nivesh.production.bajajfd.util.Constants |
|
|
|
import com.nivesh.production.bajajfd.util.ImageUtil |
|
|
|
import com.nivesh.production.bajajfd.util.Resource |
|
|
@ -45,42 +43,33 @@ import java.io.* |
|
|
|
|
|
|
|
class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
|
|
|
|
var bitmap: Bitmap? = null |
|
|
|
private var bitmap: Bitmap? = null |
|
|
|
private var latestTmpUri: Uri? = null |
|
|
|
private var _binding: FragmentBajajfdStepThreeBinding? = null |
|
|
|
private val binding get() = _binding!! |
|
|
|
private lateinit var listOfDocType: List<GetCodes> |
|
|
|
lateinit var getCodes: GetCodes |
|
|
|
private var docValue: String = "" |
|
|
|
|
|
|
|
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel |
|
|
|
|
|
|
|
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel |
|
|
|
private lateinit var dialog: Dialog |
|
|
|
private var takeImageResult: ActivityResultLauncher<Uri>? = null |
|
|
|
private var selectImageIntent: ActivityResultLauncher<String>? = null |
|
|
|
private var launcher:ActivityResultLauncher<Intent>? = null |
|
|
|
|
|
|
|
private var panString: String = "" |
|
|
|
private var photoString: String = "" |
|
|
|
private var docString: String = "" |
|
|
|
private var docString2: String = "" |
|
|
|
|
|
|
|
private var panFileExt: String? = "" |
|
|
|
private var photoFileExt: String? = "" |
|
|
|
private var doc1FileExt: String? = "" |
|
|
|
private var doc2fileExt: String? = "" |
|
|
|
|
|
|
|
private var uniqueId: String? = "" |
|
|
|
|
|
|
|
// private var actionType: AccountCaptureType? = null |
|
|
|
// |
|
|
|
// enum class AccountCaptureType { |
|
|
|
// MAIN_PAN_UPLOAD, MAIN_PHOTO_UPLOAD, FIRST_UPLOAD, SECOND_UPLOAD |
|
|
|
// } |
|
|
|
val MAIN_PAN_UPLOAD: Int = 1 |
|
|
|
val MAIN_PHOTO_UPLOAD: Int = 2 |
|
|
|
val FIRST_UPLOAD: Int = 3 |
|
|
|
val SECOND_UPLOAD: Int = 4 |
|
|
|
var actionType: Int = -1 |
|
|
|
private val MAIN_PAN_UPLOAD: Int = 1 |
|
|
|
private val MAIN_PHOTO_UPLOAD: Int = 2 |
|
|
|
private val FIRST_UPLOAD: Int = 3 |
|
|
|
private val SECOND_UPLOAD: Int = 4 |
|
|
|
private var actionType: Int = -1 |
|
|
|
|
|
|
|
private val requestPermission = registerForActivityResult( |
|
|
|
ActivityResultContracts.RequestPermission() |
|
|
@ -101,7 +90,6 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
return binding.root |
|
|
|
} |
|
|
|
|
|
|
|
@RequiresApi(Build.VERSION_CODES.P) |
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
|
|
|
super.onViewCreated(view, savedInstanceState) |
|
|
|
stepThreeBajajFDViewModel = ViewModelProvider( |
|
|
@ -126,27 +114,11 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// |
|
|
|
// launcher = registerForActivityResult( |
|
|
|
// ActivityResultContracts.StartActivityForResult() |
|
|
|
// ) { result: ActivityResult -> |
|
|
|
// if (result.resultCode == Activity.RESULT_OK |
|
|
|
// && result.data != null |
|
|
|
// ) { |
|
|
|
// val photoUri = result.data!!.data |
|
|
|
// if (photoUri != null) { |
|
|
|
// uploadDocument(photoUri) |
|
|
|
// } |
|
|
|
////use photoUri here |
|
|
|
// } |
|
|
|
// } |
|
|
|
// |
|
|
|
|
|
|
|
binding.btnNext.setOnClickListener { |
|
|
|
if (validate()) { |
|
|
|
uploadDocApi( |
|
|
|
"PAN", |
|
|
|
"data:image/.".plus(panFileExt).plus(";base64").plus(panString), |
|
|
|
"data:image/".plus(panFileExt).plus(";base64, ").plus(panString), |
|
|
|
1 |
|
|
|
) |
|
|
|
} |
|
|
@ -177,7 +149,8 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
|
|
|
|
binding.spDocType.onItemClickListener = |
|
|
|
AdapterView.OnItemClickListener { parent, _, position, _ -> |
|
|
|
getCodes = parent.getItemAtPosition(position) as GetCodes |
|
|
|
val getCodes : GetCodes = parent.getItemAtPosition(position) as GetCodes |
|
|
|
docValue = getCodes.Value |
|
|
|
docString = "" |
|
|
|
docString2 = "" |
|
|
|
when (getCodes.Label) { |
|
|
@ -232,9 +205,6 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
Manifest.permission.READ_EXTERNAL_STORAGE |
|
|
|
) |
|
|
|
if (permission == PackageManager.PERMISSION_GRANTED) { |
|
|
|
// val intent = |
|
|
|
// Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) |
|
|
|
// launcher?.launch(intent) |
|
|
|
selectImageIntent?.launch("image/*") |
|
|
|
} else { |
|
|
|
requestPermission.launch( |
|
|
@ -262,7 +232,7 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) |
|
|
|
} |
|
|
|
|
|
|
|
private fun setOtherUploadLayout(itemName: String) { |
|
|
|
private fun setOtherUploadLayout(itemName: String?) { |
|
|
|
binding.tvAadhaarFront.text = itemName.plus(" Front *") |
|
|
|
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = |
|
|
|
View.INVISIBLE |
|
|
@ -287,77 +257,98 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
binding.ivPan.visibility = View.VISIBLE |
|
|
|
val fileDir: File = requireActivity().cacheDir |
|
|
|
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) |
|
|
|
panFileExt = fileExtension.extension |
|
|
|
if(type == "c") encodedPANBase64(fileExtension) |
|
|
|
else panString = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
panFileExt = getFileExtension(getFileName(uri)) |
|
|
|
val size : Double = Common.getFileSizeInMB(fileExtension.length()) |
|
|
|
if (size < 5){ |
|
|
|
if(type == "c") encodedPANBase64(fileExtension) |
|
|
|
else panString = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
} else{ |
|
|
|
panString = "" |
|
|
|
panFileExt = "" |
|
|
|
} |
|
|
|
} |
|
|
|
MAIN_PHOTO_UPLOAD -> { |
|
|
|
binding.ivPhotograph.visibility = View.VISIBLE |
|
|
|
binding.ivPan.visibility = View.VISIBLE |
|
|
|
val fileDir: File = requireActivity().cacheDir |
|
|
|
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) |
|
|
|
photoFileExt = fileExtension.extension |
|
|
|
if(type == "c") encodedPhotoBase64(fileExtension) |
|
|
|
else photoString = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
|
|
|
|
photoFileExt = getFileExtension(getFileName(uri)) |
|
|
|
val size : Double = Common.getFileSizeInMB(fileExtension.length()) |
|
|
|
if (size < 5) { |
|
|
|
if (type == "c") encodedPhotoBase64(fileExtension) |
|
|
|
else photoString = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
}else{ |
|
|
|
photoString = "" |
|
|
|
photoFileExt = "" |
|
|
|
} |
|
|
|
} |
|
|
|
FIRST_UPLOAD -> { |
|
|
|
binding.ivAadharFront.visibility = View.VISIBLE |
|
|
|
val fileDir: File = requireActivity().cacheDir |
|
|
|
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) |
|
|
|
doc1FileExt = fileExtension.extension |
|
|
|
if(type == "c") encodedUpload1Base64(fileExtension) |
|
|
|
else docString = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
doc1FileExt = getFileExtension(getFileName(uri)) |
|
|
|
val size : Double = Common.getFileSizeInMB(fileExtension.length()) |
|
|
|
if (size < 5) { |
|
|
|
if (type == "c") encodedUpload1Base64(fileExtension) |
|
|
|
else docString = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
}else{ |
|
|
|
docString = "" |
|
|
|
doc1FileExt = "" |
|
|
|
} |
|
|
|
} |
|
|
|
else -> { |
|
|
|
binding.ivAadharBack.visibility = View.VISIBLE |
|
|
|
val fileDir: File = requireActivity().cacheDir |
|
|
|
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) |
|
|
|
doc2fileExt = fileExtension.extension |
|
|
|
if(type == "c") encodedFileToBase64(fileExtension) |
|
|
|
else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
doc2fileExt = getFileExtension(getFileName(uri)) |
|
|
|
val size : Double = Common.getFileSizeInMB(fileExtension.length()) |
|
|
|
if (size < 5) { |
|
|
|
if (type == "c") encodedFileToBase64(fileExtension) |
|
|
|
else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString() |
|
|
|
}else{ |
|
|
|
docString2 = "" |
|
|
|
doc2fileExt = "" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun encodedPANBase64(fileName: File?) { |
|
|
|
|
|
|
|
|
|
|
|
private fun encodedPANBase64(fileName: File) { |
|
|
|
panString = try { |
|
|
|
val bytes: ByteArray? = fileName?.let { loadFile(it) } |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } |
|
|
|
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") |
|
|
|
val bytes: ByteArray = loadFile(fileName) |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") |
|
|
|
} catch (e: Exception) { |
|
|
|
e.printStackTrace() |
|
|
|
"" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun encodedPhotoBase64(fileName: File?) { |
|
|
|
private fun encodedPhotoBase64(fileName: File) { |
|
|
|
photoString = try { |
|
|
|
val bytes: ByteArray? = fileName?.let { loadFile(it) } |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } |
|
|
|
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") |
|
|
|
val bytes: ByteArray = loadFile(fileName) |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") |
|
|
|
} catch (e: Exception) { |
|
|
|
e.printStackTrace() |
|
|
|
"" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun encodedUpload1Base64(fileName: File?) { |
|
|
|
private fun encodedUpload1Base64(fileName: File) { |
|
|
|
docString = try { |
|
|
|
val bytes: ByteArray? = fileName?.let { loadFile(it) } |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } |
|
|
|
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") |
|
|
|
val bytes: ByteArray = loadFile(fileName) |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") |
|
|
|
} catch (e: Exception) { |
|
|
|
e.printStackTrace() |
|
|
|
"" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun encodedFileToBase64(fileName: File?) { |
|
|
|
private fun encodedFileToBase64(fileName: File) { |
|
|
|
docString2 = try { |
|
|
|
val bytes: ByteArray? = fileName?.let { loadFile(it) } |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } |
|
|
|
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") |
|
|
|
val bytes: ByteArray = loadFile(fileName) |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "").replace("\\s+", "") |
|
|
|
} catch (e: Exception) { |
|
|
|
e.printStackTrace() |
|
|
|
"" |
|
|
@ -410,22 +401,22 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
if (uploadPosition == 1) { |
|
|
|
uploadDocApi( |
|
|
|
"Photograph", |
|
|
|
"data:image/.".plus(photoFileExt).plus(";base64") |
|
|
|
"data:image/".plus(photoFileExt).plus(";base64, ") |
|
|
|
.plus(photoString), |
|
|
|
2 |
|
|
|
) |
|
|
|
} else if (uploadPosition == 2) { |
|
|
|
uploadDocApi( |
|
|
|
getCodes.Value, |
|
|
|
"data:image/.".plus(doc1FileExt).plus(";base64") |
|
|
|
docValue, |
|
|
|
"data:image/".plus(doc1FileExt).plus(";base64, ") |
|
|
|
.plus(docString), |
|
|
|
3 |
|
|
|
) |
|
|
|
} else if (uploadPosition == 3) { |
|
|
|
if (getCodes.Value == "Aadhar") { |
|
|
|
if (docValue == "Aadhar") { |
|
|
|
uploadDocApi( |
|
|
|
getCodes.Value, |
|
|
|
"data:image/.".plus(doc2fileExt).plus(";base64") |
|
|
|
docValue, |
|
|
|
"data:image/".plus(doc2fileExt).plus(";base64, ") |
|
|
|
.plus(docString2), |
|
|
|
4 |
|
|
|
) |
|
|
@ -441,7 +432,7 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
else -> { |
|
|
|
Common.showDialogValidation( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
getUploadResponse.Response.Message |
|
|
|
getUploadResponse.Response.Errors[0].ErrorMessage |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
@ -545,7 +536,9 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
adapter.getItem(0)?.Value, |
|
|
|
false |
|
|
|
) |
|
|
|
setOtherUploadLayout(listOfDocType[0].Value) |
|
|
|
setOtherUploadLayout(adapter.getItem(0)?.Value) |
|
|
|
docValue = adapter.getItem(0)?.Value.toString() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
// 650 -> refreshToken() |
|
|
@ -592,10 +585,10 @@ class StepThreeBajajFDFragment : BaseFragment() { |
|
|
|
} else if (docString.isEmpty()) { |
|
|
|
Common.showDialogValidation( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
"Upload " + getCodes.Value + " Image" |
|
|
|
"Upload $docValue Image" |
|
|
|
) |
|
|
|
return false |
|
|
|
} else if (getCodes.Value == "Aadhar" && docString2.isEmpty()) { |
|
|
|
} else if (docValue == "Aadhar" && docString2.isEmpty()) { |
|
|
|
Common.showDialogValidation( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
"Upload Aadhar Back Image" |
|
|
|