Browse Source

Gallery Bitmap issue

PankajBranch
Manoj 2 years ago
parent
commit
9dc951a852
2 changed files with 57 additions and 22 deletions
  1. +30
    -22
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  2. +27
    -0
      app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt

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

@ -8,13 +8,10 @@ import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.database.Cursor import android.database.Cursor
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapRegionDecoder
import android.graphics.ImageDecoder
import android.graphics.Rect
import android.graphics.BitmapFactory
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.provider.MediaStore
import android.provider.OpenableColumns import android.provider.OpenableColumns
import android.util.Base64 import android.util.Base64
import android.util.Log import android.util.Log
@ -40,16 +37,15 @@ import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory import com.nivesh.production.bajajfd.ui.providerfactory.StepThreeModelProviderFactory
import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.ImageUtil
import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel
import java.io.File
import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream
import java.io.*
class StepThreeBajajFDFragment : BaseFragment() { class StepThreeBajajFDFragment : BaseFragment() {
var bitmap: Bitmap? = null
private var latestTmpUri: Uri? = null private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
@ -116,14 +112,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? -> { uri: Uri? ->
if (uri != null) { if (uri != null) {
val source = ImageDecoder.createSource(requireActivity().contentResolver, uri)
val bitmap = ImageDecoder.decodeBitmap(source)
// External sdcard location
// val mediaStorageDir = File(
// requireActivity().cacheDir,
// )
// uploadDocument(uri)
bitmap = uriToBitmap(uri)
uploadDocument(uri,"g")
} }
} }
@ -131,7 +121,7 @@ class StepThreeBajajFDFragment : BaseFragment() {
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) { if (isSuccess) {
latestTmpUri?.let { uri -> latestTmpUri?.let { uri ->
uploadDocument(uri)
uploadDocument(uri,"c")
} }
} }
} }
@ -291,14 +281,15 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.btnAadhaarFrontUpload.visibility = View.VISIBLE binding.btnAadhaarFrontUpload.visibility = View.VISIBLE
} }
private fun uploadDocument(uri: Uri) {
private fun uploadDocument(uri: Uri,type: String) {
when (actionType) { when (actionType) {
MAIN_PAN_UPLOAD -> { MAIN_PAN_UPLOAD -> {
binding.ivPan.visibility = View.VISIBLE binding.ivPan.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
panFileExt = fileExtension.extension panFileExt = fileExtension.extension
encodedPANBase64(fileExtension)
if(type == "c") encodedPANBase64(fileExtension)
else panString = bitmap?.let { ImageUtil.convert(it) }.toString()
} }
MAIN_PHOTO_UPLOAD -> { MAIN_PHOTO_UPLOAD -> {
binding.ivPhotograph.visibility = View.VISIBLE binding.ivPhotograph.visibility = View.VISIBLE
@ -306,21 +297,25 @@ class StepThreeBajajFDFragment : BaseFragment() {
val fileDir: File = requireActivity().cacheDir val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
photoFileExt = fileExtension.extension photoFileExt = fileExtension.extension
encodedPhotoBase64(fileExtension)
if(type == "c") encodedPhotoBase64(fileExtension)
else photoString = bitmap?.let { ImageUtil.convert(it) }.toString()
} }
FIRST_UPLOAD -> { FIRST_UPLOAD -> {
binding.ivAadharFront.visibility = View.VISIBLE binding.ivAadharFront.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
doc1FileExt = fileExtension.extension doc1FileExt = fileExtension.extension
encodedUpload1Base64(fileExtension)
if(type == "c") encodedUpload1Base64(fileExtension)
else docString = bitmap?.let { ImageUtil.convert(it) }.toString()
} }
else -> { else -> {
binding.ivAadharBack.visibility = View.VISIBLE binding.ivAadharBack.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
doc2fileExt = fileExtension.extension doc2fileExt = fileExtension.extension
encodedFileToBase64(fileExtension)
if(type == "c") encodedFileToBase64(fileExtension)
else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString()
} }
} }
} }
@ -642,4 +637,17 @@ class StepThreeBajajFDFragment : BaseFragment() {
fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) { fun displayReceivedData(createFDApplicationResponse: CreateFDApplicationResponse) {
uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId uniqueId = createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId
} }
private fun uriToBitmap(selectedFileUri: Uri): Bitmap? {
try {
val parcelFileDescriptor = requireActivity().contentResolver.openFileDescriptor(selectedFileUri, "r")
val fileDescriptor: FileDescriptor = parcelFileDescriptor!!.fileDescriptor
val image = BitmapFactory.decodeFileDescriptor(fileDescriptor)
parcelFileDescriptor.close()
return image
} catch (e: IOException) {
e.printStackTrace()
}
return null
}
} }

+ 27
- 0
app/src/main/java/com/nivesh/production/bajajfd/util/ImageUtil.kt View File

@ -0,0 +1,27 @@
package com.nivesh.production.bajajfd.util
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
class ImageUtil {
@Throws(IllegalArgumentException::class)
fun convert(base64Str: String): Bitmap? {
val decodedBytes: ByteArray = Base64.decode(
base64Str.substring(base64Str.indexOf(",") + 1),
Base64.DEFAULT
)
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.size)
}
companion object {
fun convert(bitmap: Bitmap): String? {
val outputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream)
return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT)
}
}
}

Loading…
Cancel
Save

Powered by TurnKey Linux.