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.database.Cursor
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.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.provider.OpenableColumns
import android.util.Base64
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.util.Common
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.viewModel.StepThreeBajajFDViewModel
import java.io.File
import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream
import java.io.*
class StepThreeBajajFDFragment : BaseFragment() {
var bitmap: Bitmap? = null
private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!!
@ -116,14 +112,8 @@ class StepThreeBajajFDFragment : BaseFragment() {
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? ->
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 ->
if (isSuccess) {
latestTmpUri?.let { uri ->
uploadDocument(uri)
uploadDocument(uri,"c")
}
}
}
@ -291,14 +281,15 @@ class StepThreeBajajFDFragment : BaseFragment() {
binding.btnAadhaarFrontUpload.visibility = View.VISIBLE
}
private fun uploadDocument(uri: Uri) {
private fun uploadDocument(uri: Uri,type: String) {
when (actionType) {
MAIN_PAN_UPLOAD -> {
binding.ivPan.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
panFileExt = fileExtension.extension
encodedPANBase64(fileExtension)
if(type == "c") encodedPANBase64(fileExtension)
else panString = bitmap?.let { ImageUtil.convert(it) }.toString()
}
MAIN_PHOTO_UPLOAD -> {
binding.ivPhotograph.visibility = View.VISIBLE
@ -306,21 +297,25 @@ class StepThreeBajajFDFragment : BaseFragment() {
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
photoFileExt = fileExtension.extension
encodedPhotoBase64(fileExtension)
if(type == "c") encodedPhotoBase64(fileExtension)
else photoString = bitmap?.let { ImageUtil.convert(it) }.toString()
}
FIRST_UPLOAD -> {
binding.ivAadharFront.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
doc1FileExt = fileExtension.extension
encodedUpload1Base64(fileExtension)
if(type == "c") encodedUpload1Base64(fileExtension)
else docString = bitmap?.let { ImageUtil.convert(it) }.toString()
}
else -> {
binding.ivAadharBack.visibility = View.VISIBLE
val fileDir: File = requireActivity().cacheDir
val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri)))
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) {
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.