Skip to content

Commit 788a36a

Browse files
committed
[feat] add fragment option to constructor
1 parent 35577a7 commit 788a36a

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

camerax-mlkit-pack/src/main/java/com/furkan/camerax_mlkit_pack/CameraxManager.kt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import androidx.camera.core.*
1919
import androidx.camera.lifecycle.ProcessCameraProvider
2020
import androidx.camera.view.PreviewView
2121
import androidx.core.content.ContextCompat
22+
import androidx.fragment.app.Fragment
2223
import androidx.lifecycle.LifecycleOwner
2324
import com.furkan.camerax_mlkit_pack.core.Constants
2425
import com.furkan.camerax_mlkit_pack.core.Constants.CAMERA_RESOLUTION_HEIGHT
@@ -47,13 +48,15 @@ import java.util.concurrent.TimeUnit
4748

4849
class CameraxManager(
4950
context: Context,
51+
fragment: Fragment?,
5052
previewView: PreviewView,
5153
focusRing: ImageView,
5254
cameraSelectorType: Int? = CameraSelector.LENS_FACING_BACK,
5355
accuracyLevel: Int = Constants.BARCODE_ACCURACY_DEFAULT_COUNT
5456
) {
5557

5658
private var mContext = context
59+
private var mFragment = fragment
5760
private var mPreviewView = previewView
5861
private var mFocusRing = focusRing
5962
private var cameraControl: CameraControl? = null
@@ -120,6 +123,7 @@ class CameraxManager(
120123

121124
fun getInstance(
122125
context: Context,
126+
fragment: Fragment,
123127
previewView: PreviewView,
124128
focusRing: ImageView,
125129
cameraSelectorType: Int? = CameraSelector.LENS_FACING_BACK,
@@ -128,6 +132,7 @@ class CameraxManager(
128132
?: synchronized(this) {
129133
INSTANCE ?: CameraxManager(
130134
context,
135+
fragment,
131136
previewView,
132137
focusRing,
133138
cameraSelectorType,
@@ -148,7 +153,7 @@ class CameraxManager(
148153
}
149154

150155
fun startCamera() {
151-
if(cameraExecutor.isShutdown || cameraExecutor.isTerminated) {
156+
if (cameraExecutor.isShutdown || cameraExecutor.isTerminated) {
152157
cameraExecutor = Executors.newSingleThreadExecutor()
153158
}
154159
addCameraProviderFeatureListener()
@@ -352,10 +357,18 @@ class CameraxManager(
352357
preview.setSurfaceProvider(mPreviewView.surfaceProvider)
353358

354359
cameraProvider.unbindAll()
355-
val camera: Camera = cameraProvider.bindToLifecycle(
356-
(mContext as LifecycleOwner), cameraSelector!!,
357-
imageAnalysisUseCase, preview, imageCaptureBuilder
358-
)
360+
val camera: Camera = if (mFragment != null) {
361+
cameraProvider.bindToLifecycle(
362+
(mFragment as LifecycleOwner), cameraSelector!!,
363+
imageAnalysisUseCase, preview, imageCaptureBuilder
364+
)
365+
} else {
366+
cameraProvider.bindToLifecycle(
367+
(mContext as LifecycleOwner), cameraSelector!!,
368+
imageAnalysisUseCase, preview, imageCaptureBuilder
369+
)
370+
}
371+
359372
cameraControl = camera.cameraControl
360373
}
361374

0 commit comments

Comments
 (0)