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.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<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 {
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
}
}

+ 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_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>
</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="pay">PAY</string>
<array name="addressType">
<item>Aadhaar Card</item>
<item>PAN</item>
<item>Voter Id</item>
<item>Driving Licence</item>
</array>
</resources>

Loading…
Cancel
Save

Powered by TurnKey Linux.