|
|
@ -2,14 +2,18 @@ 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.OpenableColumns |
|
|
|
import android.provider.Settings |
|
|
|
import android.util.Base64 |
|
|
|
import android.util.Log |
|
|
|
import android.view.LayoutInflater |
|
|
@ -19,6 +23,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 |
|
|
@ -31,13 +36,17 @@ import com.nivesh.production.bajajfd.model.* |
|
|
|
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity |
|
|
|
import com.nivesh.production.bajajfd.util.Common |
|
|
|
import com.nivesh.production.bajajfd.util.Common.Companion.getFileExtension |
|
|
|
import com.nivesh.production.bajajfd.util.Common.Companion.showDialogWithTwoButtons |
|
|
|
import com.nivesh.production.bajajfd.util.Constants |
|
|
|
import com.nivesh.production.bajajfd.util.ImageUtil |
|
|
|
import com.nivesh.production.bajajfd.util.Resource |
|
|
|
import java.io.* |
|
|
|
import java.util.* |
|
|
|
|
|
|
|
|
|
|
|
class StepThreeBajajFDFragment : Fragment() { |
|
|
|
|
|
|
|
|
|
|
|
private var _binding: FragmentBajajfdStepThreeBinding? = null |
|
|
|
private val binding get() = _binding!! |
|
|
|
|
|
|
@ -48,7 +57,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 = "" |
|
|
@ -65,18 +73,40 @@ 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 requestPermission = registerForActivityResult( |
|
|
|
private val requestCameraPermission = registerForActivityResult( |
|
|
|
ActivityResultContracts.RequestPermission() |
|
|
|
) { isGranted: Boolean -> |
|
|
|
if (isGranted) { |
|
|
|
Log.e("permission:", "Granted") |
|
|
|
takeImage() |
|
|
|
} else { |
|
|
|
Log.e("permission:", "Denied") |
|
|
|
showDialogWithTwoButtons((activity as BajajFdMainActivity), getString(R.string.cameraPermission), getString( |
|
|
|
R.string.permissionRequired)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private val requestGalleryPermission = registerForActivityResult( |
|
|
|
ActivityResultContracts.RequestMultiplePermissions() |
|
|
|
) { permission -> |
|
|
|
if (!permission.containsValue(false)) { |
|
|
|
selectImageIntent?.launch("image/*") |
|
|
|
} else { |
|
|
|
showDialogWithTwoButtons((activity as BajajFdMainActivity), getString(R.string.galleryPermission), getString( |
|
|
|
R.string.permissionsRequired)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
override fun onCreateView( |
|
|
|
inflater: LayoutInflater, container: ViewGroup?, |
|
|
@ -90,12 +120,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) { |
|
|
@ -213,57 +237,75 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
getString(R.string.chooseFromGallery), |
|
|
|
getString(R.string.cancel) |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
{ dialog: DialogInterface, pos -> |
|
|
|
when(pos) |
|
|
|
{ |
|
|
|
) { dialog: DialogInterface, pos -> |
|
|
|
when (pos) { |
|
|
|
0 -> { |
|
|
|
|
|
|
|
val permission = ContextCompat.checkSelfPermission( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
if (permission == PackageManager.PERMISSION_GRANTED) { |
|
|
|
takeImage() |
|
|
|
} else { |
|
|
|
requestPermission.launch( |
|
|
|
if (hasPermissions( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
) { |
|
|
|
takeImage() |
|
|
|
} else { |
|
|
|
onClickRequestPermission() |
|
|
|
} |
|
|
|
dialog.dismiss() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
1-> |
|
|
|
{ |
|
|
|
|
|
|
|
val permission = ContextCompat.checkSelfPermission( |
|
|
|
activity as BajajFdMainActivity, |
|
|
|
Manifest.permission.READ_EXTERNAL_STORAGE |
|
|
|
) |
|
|
|
if (permission == PackageManager.PERMISSION_GRANTED) { |
|
|
|
1 -> { |
|
|
|
if (hasPermissions(activity as BajajFdMainActivity, *permissions)) { |
|
|
|
selectImageIntent?.launch("image/*") |
|
|
|
} else { |
|
|
|
requestPermission.launch( |
|
|
|
Manifest.permission.READ_EXTERNAL_STORAGE |
|
|
|
) |
|
|
|
requestGalleryPermission.launch(permissions) |
|
|
|
} |
|
|
|
|
|
|
|
dialog.dismiss() |
|
|
|
|
|
|
|
} |
|
|
|
else-> |
|
|
|
{ |
|
|
|
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 |
|
|
|
} |
|
|
|
|
|
|
|
private 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 -> { |
|
|
|
requestCameraPermission.launch( |
|
|
|
Manifest.permission.CAMERA |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun setOtherUploadLayout(itemName: String?) { |
|
|
|
binding.tvAadhaarFront.text = itemName.plus(" Front *") |
|
|
|
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = |
|
|
@ -546,11 +588,11 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
) |
|
|
|
binding.spDocType.setAdapter(adapter) |
|
|
|
binding.spDocType.setText( |
|
|
|
adapter.getItem(0)?.Value, |
|
|
|
adapter.getItem(0)?.Label, |
|
|
|
false |
|
|
|
) |
|
|
|
setOtherUploadLayout(adapter.getItem(0)?.Value) |
|
|
|
docValue = adapter.getItem(0)?.Value.toString() |
|
|
|
setOtherUploadLayout(adapter.getItem(0)?.Label) |
|
|
|
docValue = adapter.getItem(0)?.Label.toString() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|