@@ -4,7 +4,6 @@ import android.Manifest
44import android.app.Activity
55import android.content.Context
66import android.content.ContextWrapper
7- import android.content.Intent
87import android.content.pm.PackageManager
98import android.content.res.ColorStateList
109import android.graphics.Bitmap
@@ -20,16 +19,22 @@ import android.view.MotionEvent
2019import android.widget.FrameLayout
2120import android.widget.Toast
2221import androidx.annotation.LayoutRes
23- import androidx.appcompat.app.AppCompatActivity
2422import androidx.camera.core.*
2523import androidx.camera.lifecycle.ProcessCameraProvider
2624import androidx.core.app.ActivityCompat
2725import androidx.core.content.ContextCompat
2826import androidx.core.view.isVisible
29- import androidx.lifecycle.*
27+ import androidx.fragment.app.Fragment
28+ import androidx.fragment.app.FragmentManager
29+ import androidx.lifecycle.Lifecycle
30+ import androidx.lifecycle.LifecycleOwner
31+ import androidx.lifecycle.LifecycleRegistry
32+ import androidx.lifecycle.lifecycleScope
3033import androidx.recyclerview.widget.LinearLayoutManager
3134import com.bumptech.glide.Glide
3235import com.google.common.util.concurrent.ListenableFuture
36+ import com.kedia.customcamera.utils.getBitmap
37+ import com.kedia.customcamera.utils.getUri
3338import com.kedia.customcamera.utils.makeGone
3439import com.kedia.customcamera.utils.makeVisible
3540import kotlinx.android.synthetic.main.custom_camera.view.*
@@ -38,10 +43,9 @@ import kotlinx.coroutines.launch
3843import kotlinx.coroutines.withContext
3944import java.io.File
4045import java.lang.Math.abs
41- import java.util.concurrent.ExecutorService
4246
4347
44- class CCMultiple : FrameLayout , CustomImageAdapter .CustomAdapterClick , LifecycleOwner {
48+ open class CCMultiple : FrameLayout , CustomImageAdapter .CustomAdapterClick , LifecycleOwner {
4549
4650
4751
@@ -53,6 +57,7 @@ class CCMultiple : FrameLayout, CustomImageAdapter.CustomAdapterClick, Lifecycle
5357// private lateinit var cameraExecutor: ExecutorService
5458// private lateinit var outputDirectory: File
5559 private lateinit var camera: androidx.camera.core.Camera
60+ private var progressDialogFragment: ProgressDialogFragment ? = null
5661 private lateinit var cameraSelector: CameraSelector
5762
5863 private val imageArrayList: MutableList <Bitmap ?> = mutableListOf ()
@@ -352,12 +357,15 @@ class CCMultiple : FrameLayout, CustomImageAdapter.CustomAdapterClick, Lifecycle
352357 // Use the image, then make sure to close it.
353358 val buffer = image.planes[0 ].buffer
354359 val bytes = ByteArray (buffer.capacity()).also { buffer.get(it) }
355-
360+ showProgressDialog( " Processing " )
356361 lifecycleScope.launch {
357362 withContext(Dispatchers .IO ) {
358363
359364 val rotatedBitmap = rotateBitmap(BitmapFactory .decodeByteArray(bytes, 0 , bytes.size))
365+ val uri = rotatedBitmap?.let { getUri(context, it) }
366+ imageArrayList.add(uri?.let { getBitmap(context, it) })
360367 withContext(Dispatchers .Main ) {
368+ dismissDialog()
361369 capturedImage.apply {
362370 setImageBitmap(rotatedBitmap)
363371 }
@@ -367,7 +375,6 @@ class CCMultiple : FrameLayout, CustomImageAdapter.CustomAdapterClick, Lifecycle
367375// Log.d(TAG, bitmap.toString())
368376 changeBrightness(BRIGHTNESS .LOW )
369377 customCameraAdapter.addData(rotatedBitmap)
370- imageArrayList.add(rotatedBitmap)
371378 frontFlash.makeGone()
372379 val atTop = ! imageRecyclerView.canScrollVertically(- 1 )
373380
@@ -443,6 +450,16 @@ class CCMultiple : FrameLayout, CustomImageAdapter.CustomAdapterClick, Lifecycle
443450 mediaDir else context.filesDir
444451 }
445452
453+ private fun showProgressDialog (message : String? ) {
454+ progressDialogFragment = message?.let { ProgressDialogFragment (it) }
455+ val fm: FragmentManager = (context as Fragment ).childFragmentManager
456+ progressDialogFragment?.show(fm, ProgressDialogFragment ::class .java.toString())
457+ }
458+
459+ private fun dismissDialog () {
460+ progressDialogFragment?.dismissAllowingStateLoss()
461+ }
462+
446463
447464 interface CustomMultiple {
448465 fun onConfirmImagesClicked (imageArrayList : MutableList <Bitmap ?>)
0 commit comments