|
|
@ -2,15 +2,15 @@ package com.nivesh.production.bajajfd.ui.fragment |
|
|
|
|
|
|
|
import android.Manifest |
|
|
|
import android.annotation.SuppressLint |
|
|
|
import android.app.Activity |
|
|
|
import android.content.DialogInterface |
|
|
|
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.MediaStore |
|
|
|
import android.provider.OpenableColumns |
|
|
|
import android.util.Base64 |
|
|
|
import android.util.Log |
|
|
@ -21,6 +21,7 @@ import android.widget.* |
|
|
|
import androidx.activity.result.ActivityResultLauncher |
|
|
|
import androidx.activity.result.contract.ActivityResultContracts |
|
|
|
import androidx.appcompat.app.AlertDialog |
|
|
|
import androidx.core.app.ActivityCompat |
|
|
|
import androidx.core.content.ContextCompat |
|
|
|
import androidx.core.content.FileProvider |
|
|
|
import androidx.fragment.app.Fragment |
|
|
@ -52,7 +53,6 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
|
|
|
|
private val mapImage: HashMap<String, String> = HashMap() |
|
|
|
private lateinit var listOfDocType: List<GetCodes> |
|
|
|
private var check: Array<String>? = null |
|
|
|
|
|
|
|
private var panString: String = "" |
|
|
|
private var photoString: String = "" |
|
|
@ -69,17 +69,51 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
private val secondDocUpload: Int = 4 |
|
|
|
private var actionType: Int = -1 |
|
|
|
|
|
|
|
private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { |
|
|
|
arrayOf( |
|
|
|
Manifest.permission.READ_EXTERNAL_STORAGE, |
|
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE, |
|
|
|
Manifest.permission.READ_MEDIA_IMAGES |
|
|
|
) |
|
|
|
} else { |
|
|
|
arrayOf( |
|
|
|
Manifest.permission.READ_EXTERNAL_STORAGE, |
|
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE |
|
|
|
) |
|
|
|
} |
|
|
|
private val askPermissions = mutableListOf<String>() |
|
|
|
|
|
|
|
private val requestPermission = registerForActivityResult( |
|
|
|
private val requestCameraPermission = registerForActivityResult( |
|
|
|
ActivityResultContracts.RequestPermission() |
|
|
|
) { isGranted: Boolean -> |
|
|
|
if (isGranted) { |
|
|
|
Log.e("permission:", "Granted") |
|
|
|
Log.e("Permission: ", "Granted") |
|
|
|
} else { |
|
|
|
Log.e("permission:", "Denied") |
|
|
|
Log.e("Permission: ", "Denied") |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private val requestGalleryPermission = registerForActivityResult( |
|
|
|
ActivityResultContracts.RequestMultiplePermissions() |
|
|
|
) { permission -> |
|
|
|
|
|
|
|
if (!permission.containsValue(false)){ |
|
|
|
selectImageIntent?.launch("image/*") |
|
|
|
}else{ |
|
|
|
// for (permissionObj in permissions) { |
|
|
|
// if (ContextCompat.checkSelfPermission(activity as BajajFdMainActivity, permissionObj) != PackageManager.PERMISSION_GRANTED) { |
|
|
|
// askPermissions.add(permissionObj) |
|
|
|
// } |
|
|
|
// } |
|
|
|
// if (askPermissions.isNotEmpty()){ |
|
|
|
// requestGalleryPermission.launch(askPermissions) |
|
|
|
// } |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateView( |
|
|
|
inflater: LayoutInflater, container: ViewGroup?, |
|
|
|
savedInstanceState: Bundle? |
|
|
@ -92,12 +126,6 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
|
|
|
super.onViewCreated(view, savedInstanceState) |
|
|
|
|
|
|
|
check = arrayOf( |
|
|
|
getString(R.string.takePhoto), |
|
|
|
getString(R.string.chooseFromGallery), |
|
|
|
getString(R.string.cancel) |
|
|
|
) |
|
|
|
|
|
|
|
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) |
|
|
|
{ uri: Uri? -> |
|
|
|
if (uri != null) { |
|
|
@ -210,54 +238,81 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
) |
|
|
|
builder.setTitle(getString(R.string.addPhoto)) |
|
|
|
builder.setItems( |
|
|
|
check |
|
|
|
) { dialog: DialogInterface, item: Int -> |
|
|
|
if (check!![item] == getString(R.string.takePhoto)) { |
|
|
|
val permission = ContextCompat.checkSelfPermission( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
if (permission == PackageManager.PERMISSION_GRANTED) { |
|
|
|
takeImage() |
|
|
|
} else { |
|
|
|
requestPermission.launch( |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
arrayOf( |
|
|
|
getString(R.string.takePhoto), |
|
|
|
getString(R.string.chooseFromGallery), |
|
|
|
getString(R.string.cancel) |
|
|
|
) |
|
|
|
) { dialog: DialogInterface, pos -> |
|
|
|
when (pos) { |
|
|
|
0 -> { |
|
|
|
if (hasPermissions( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
) { |
|
|
|
takeImage() |
|
|
|
} else { |
|
|
|
onClickRequestPermission() |
|
|
|
} |
|
|
|
dialog.dismiss() |
|
|
|
} |
|
|
|
dialog.dismiss() |
|
|
|
} else if (check!![item] == getString(R.string.chooseFromGallery)) { |
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 -> { |
|
|
|
if (hasPermissions(activity as BajajFdMainActivity, *permissions)) { |
|
|
|
selectImageIntent?.launch("image/*") |
|
|
|
} else { |
|
|
|
requestGalleryPermission.launch(permissions) |
|
|
|
} |
|
|
|
dialog.dismiss() |
|
|
|
} |
|
|
|
else -> { |
|
|
|
dialog.dismiss() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
builder.show() |
|
|
|
} |
|
|
|
|
|
|
|
private fun hasPermissions(activity: Activity, vararg permissions: String?): Boolean { |
|
|
|
for (permission in permissions) { |
|
|
|
if (ActivityCompat.checkSelfPermission( |
|
|
|
activity, |
|
|
|
permission!! |
|
|
|
) != PackageManager.PERMISSION_GRANTED |
|
|
|
) { |
|
|
|
return false |
|
|
|
} |
|
|
|
} |
|
|
|
return true |
|
|
|
} |
|
|
|
|
|
|
|
fun onClickRequestPermission() { |
|
|
|
when { |
|
|
|
ContextCompat.checkSelfPermission( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) == PackageManager.PERMISSION_GRANTED -> { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
ActivityCompat.shouldShowRequestPermissionRationale( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) -> { |
|
|
|
requestCameraPermission.launch( |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else if (check!![item] == getString(R.string.cancel)) { |
|
|
|
dialog.dismiss() |
|
|
|
else -> { |
|
|
|
requestCameraPermission.launch( |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
builder.show() |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private fun setOtherUploadLayout(itemName: String?) { |
|
|
|
binding.tvAadhaarFront.text = itemName.plus(" Front *") |
|
|
|
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = |
|
|
|