Browse Source

camera or gallery upload

PankajBranch
Manoj 2 years ago
parent
commit
55a3656439
3 changed files with 104 additions and 110 deletions
  1. +104
    -93
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  2. +0
    -10
      app/src/main/res/layout/fragment_bajajfd_step_three.xml
  3. +0
    -7
      app/src/main/res/values/strings.xml

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

@ -6,10 +6,8 @@ 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.text.Editable
import android.util.Base64 import android.util.Base64
@ -17,17 +15,11 @@ 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
@ -57,6 +49,13 @@ class StepThreeBajajFDFragment : BaseFragment() {
private var uniqueId: String? = "" private var uniqueId: String? = ""
private lateinit var dialog: Dialog private lateinit var dialog: Dialog
private lateinit var front: String private lateinit var front: String
private var takeImageResult: ActivityResultLauncher<Uri>? = null
private var selectImageIntent: ActivityResultLauncher<String>? = null
private var fileExt: String? = null
private val mapImage: HashMap<String, String> = HashMap()
private var selectdImage: String? = null
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 +69,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,9 +89,29 @@ 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()
var uploadPosition = 0
for (entry in mapImage.iterator()) {
uploadPosition++
uploadDocApi(entry.key, entry.value, uploadPosition)
}
// //
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) // bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest)
} }
@ -117,8 +120,28 @@ class StepThreeBajajFDFragment : BaseFragment() {
(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 =
@ -162,7 +185,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
return result return result
} }
private fun selectImage() {
private fun selectImage(fileType: String) {
selectdImage = 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 +199,31 @@ class StepThreeBajajFDFragment : BaseFragment() {
tvGallery.setOnClickListener { tvGallery.setOnClickListener {
dialog.cancel() 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 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 { 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
)
}
)
} }
} }
@ -261,13 +261,19 @@ class StepThreeBajajFDFragment : BaseFragment() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val documentUpload = DocumentUpload() val documentUpload = DocumentUpload()
val value: Editable? = binding.spDocType.text 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))) val file_ex = File(file_dir.toString().plus("/").plus(getFileName(uri)))
fileExt = file_ex.extension
var file_path: File? = uri.path?.let { File(it) } var file_path: File? = uri.path?.let { File(it) }
encodedFileToBase64(file_ex) 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 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.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 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") Log.e("response", "-->$response")
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()
// }
} }
// 650 -> refreshToken() // 650 -> refreshToken()
else -> {} else -> {}
@ -343,7 +355,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
} }
} }
} }
} }
@ -412,7 +423,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 +449,6 @@ class StepThreeBajajFDFragment : BaseFragment() {
} }
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
} }
} }

+ 0
- 10
app/src/main/res/layout/fragment_bajajfd_step_three.xml View File

@ -234,16 +234,6 @@
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload" app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintVertical_bias="0.406" /> app:layout_constraintVertical_bias="0.406" />
<ImageView
android:id="@+id/iv"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/bajaj_logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarBackUpload" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>


+ 0
- 7
app/src/main/res/values/strings.xml View File

@ -248,11 +248,4 @@
<string name="customerCategory">CustomerCategory</string> <string name="customerCategory">CustomerCategory</string>
<string name="pay">PAY</string> <string name="pay">PAY</string>
<array name="addressType">
<item>Aadhaar Card</item>
<item>PAN</item>
<item>Voter Id</item>
<item>Driving Licence</item>
</array>
</resources> </resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.