Browse Source

added minor changes

PankajBranch
Hemant Khadase 2 years ago
parent
commit
38f8420ed4
1 changed files with 122 additions and 117 deletions
  1. +122
    -117
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt

+ 122
- 117
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt View File

@ -6,28 +6,19 @@ import android.app.ActionBar.LayoutParams
import android.app.Dialog import android.app.Dialog
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.database.Cursor import android.database.Cursor
import android.graphics.Bitmap
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.MediaStore
import android.provider.OpenableColumns import android.provider.OpenableColumns
import android.text.Editable
import android.util.Base64 import android.util.Base64
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup 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.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson import com.google.gson.Gson
import com.nivesh.production.bajajfd.BuildConfig import com.nivesh.production.bajajfd.BuildConfig
@ -54,9 +45,18 @@ class StepThreeBajajFDFragment : BaseFragment() {
private lateinit var bajajFDInterface: BajajFDInterface private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private var uniqueId: String? = ""
private lateinit var dialog: Dialog private lateinit var dialog: Dialog
private var takeImageResult: ActivityResultLauncher<Uri>? = null
private var selectImageIntent: ActivityResultLauncher<String>? = null
private val mapImage: HashMap<String, String> = HashMap()
private var front: String = "" private var front: String = ""
private var fileExt: String? = ""
private var uniqueId: String? = ""
private var selectedImage: String? = ""
private var checkPANUploadFile: Boolean? = false
private var checkPhotoUploadFile: Boolean? = false
companion object { companion object {
fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment {
@ -70,22 +70,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
bajajFDInterface = bajajFDInterfaces 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( private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission() ActivityResultContracts.RequestPermission()
) { isGranted: Boolean -> ) { isGranted: Boolean ->
@ -106,19 +90,61 @@ class StepThreeBajajFDFragment : BaseFragment() {
val root = binding.root val root = binding.root
stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel 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 { binding.btnNext.setOnClickListener {
if (validate()) { if (validate()) {
// uploadDocApi()
//
bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
var uploadPosition = 0
for (entry in mapImage.iterator()) {
uploadPosition++
if (entry.key.contains("Main ")) {
uploadDocApi(entry.key.replace("Main ", ""), entry.value, uploadPosition)
} else {
uploadDocApi(entry.key, entry.value, uploadPosition)
}
}
} }
} }
binding.btnBack.setOnClickListener { binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 1 (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 { 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 = binding.spDocType.onItemClickListener =
@ -140,21 +166,19 @@ class StepThreeBajajFDFragment : BaseFragment() {
@SuppressLint("Range") @SuppressLint("Range")
fun getFileName(uri: Uri): String { fun getFileName(uri: Uri): String {
var result: String? = null
var result = ""
if (uri.scheme == "content") { if (uri.scheme == "content") {
val cursor: Cursor = 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))
requireActivity().contentResolver.query(uri, null, null, null, null)!!
cursor.use { cursor1 ->
if (cursor1.moveToFirst()) {
result = cursor1.getString(cursor1.getColumnIndex(OpenableColumns.DISPLAY_NAME))
} }
} finally {
cursor.close()
} }
} }
if (result == null) {
result = uri.path
val cut = result!!.lastIndexOf('/')
if (result.isEmpty()) {
result = uri.path!!
val cut = result.lastIndexOf('/')
if (cut != -1) { if (cut != -1) {
result = result.substring(cut + 1) result = result.substring(cut + 1)
} }
@ -162,7 +186,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
return result return result
} }
private fun selectImage() {
private fun selectImage(fileType: String) {
selectedImage = fileType
dialog = Dialog(activity as BajajFdMainActivity) dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout) dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut) val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
@ -175,55 +200,31 @@ class StepThreeBajajFDFragment : BaseFragment() {
tvGallery.setOnClickListener { tvGallery.setOnClickListener {
dialog.cancel() dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED -> {
selectImageIntent.launch("image/*")
}
ActivityCompat.shouldShowRequestPermissionRationale(
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 Manifest.permission.READ_EXTERNAL_STORAGE
) -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
else -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
)
} }
} }
tvCamera.setOnClickListener { tvCamera.setOnClickListener {
dialog.cancel() 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 Manifest.permission.CAMERA
) -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
else -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
)
} }
} }
@ -231,13 +232,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
} }
private fun checkCameraStoragePermission(
permission: String,
selectImageIntent: ActivityResultLauncher<String>
) {
TODO("Not yet implemented")
}
private fun setOtherUploadLayout(itemName: String) { private fun setOtherUploadLayout(itemName: String) {
binding.tvAadhaarFront.text = itemName.plus(" Front *") binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
@ -259,15 +253,15 @@ class StepThreeBajajFDFragment : BaseFragment() {
private fun uploadDocument(uri: Uri) { private fun uploadDocument(uri: Uri) {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val documentUpload = DocumentUpload()
val value: Editable? = binding.spDocType.text
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 =
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
fileExt = fileExtension.extension
encodedFileToBase64(fileExtension)
if (checkPANUploadFile == true || checkPhotoUploadFile == true) {
mapImage["Main ".plus(selectedImage)] = front
} else {
selectedImage?.let { mapImage.put(it, front) }
}
} }
} }
@ -283,7 +277,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
@Throws(IOException::class) @Throws(IOException::class)
private fun loadFile(file: File): ByteArray? {
private fun loadFile(file: File): ByteArray {
val inputStream: InputStream = FileInputStream(file) val inputStream: InputStream = FileInputStream(file)
val length = file.length() val length = file.length()
val bytes = ByteArray(length.toInt()) val bytes = ByteArray(length.toInt())
@ -301,26 +295,38 @@ class StepThreeBajajFDFragment : BaseFragment() {
return bytes 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() val du = DocumentUpload()
du.Description = "PAN"
du.DocumentType = "PAN"
du.Description = key
du.DocumentType = key
du.FDProvider = getString(R.string.bajaj) du.FDProvider = getString(R.string.bajaj)
du.ImageEncodeToBase64 = front //"data:image/png;base64"
du.NiveshClientCode = (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE
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 du.UniqueId = uniqueId
stepThreeBajajFDViewModel.documentsUpload(du,Constants.token)
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner){ response ->
when (response){
is Resource.Success ->{
Log.e("response", "-->$response")
stepThreeBajajFDViewModel.documentsUpload(du, Constants.token)
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
Log.e("UploadImage", "Response-->"+response.data.toString())
val getUploadResponse: UploadResponse = val getUploadResponse: UploadResponse =
Gson().fromJson(response.data?.toString(),UploadResponse::class.java)
Gson().fromJson(response.data?.toString(), UploadResponse::class.java)
getUploadResponse.Response.StatusCode.let { code -> getUploadResponse.Response.StatusCode.let { code ->
when (code) { when (code) {
200 -> { 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()
bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
}
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> { else -> {
@ -343,7 +349,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
} }
} }
} }
} }
@ -412,7 +417,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
lifecycleScope.launchWhenStarted { lifecycleScope.launchWhenStarted {
getTmpFileUri().let { uri -> getTmpFileUri().let { uri ->
latestTmpUri = uri latestTmpUri = uri
takeImageResult.launch(uri)
takeImageResult?.launch(uri)
} }
} }
} }
@ -438,6 +443,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
} }
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.