Fix camera unbind

This commit is contained in:
Andrew 2024-03-12 20:11:46 +10:30
parent 9ceaa97978
commit 0e7f95dede

View File

@ -129,14 +129,14 @@ class LinkDeviceActivity : BaseActionBarActivity() {
val pagerState = rememberPagerState { TITLES.size } val pagerState = rememberPagerState { TITLES.size }
Column { Column {
val localContext = LocalContext.current
val cameraProvider = remember { ProcessCameraProvider.getInstance(localContext) }
SessionTabRow(pagerState, TITLES) SessionTabRow(pagerState, TITLES)
HorizontalPager( HorizontalPager(
state = pagerState, state = pagerState,
modifier = Modifier.weight(1f) modifier = Modifier.weight(1f)
) { page -> ) { page ->
val title = TITLES[page] val title = TITLES[page]
val localContext = LocalContext.current
val cameraProvider = remember { ProcessCameraProvider.getInstance(localContext) }
val options = BarcodeScannerOptions.Builder() val options = BarcodeScannerOptions.Builder()
.setBarcodeFormats(Barcode.FORMAT_QR_CODE) .setBarcodeFormats(Barcode.FORMAT_QR_CODE)
@ -147,9 +147,12 @@ class LinkDeviceActivity : BaseActionBarActivity() {
when (title) { when (title) {
R.string.activity_link_device_scan_qr_code -> { R.string.activity_link_device_scan_qr_code -> {
LocalSoftwareKeyboardController.current?.hide() LocalSoftwareKeyboardController.current?.hide()
cameraProvider.get().bindToLifecycle(LocalLifecycleOwner.current, selector, preview, buildAnalysisUseCase(scanner, viewModel::tryPhrase)) cameraProvider.get().apply {
unbindAll()
bindToLifecycle(LocalLifecycleOwner.current, selector, preview, buildAnalysisUseCase(scanner, viewModel::scan))
}
} }
else -> cameraProvider.get().unbind(preview) else -> cameraProvider.get().unbindAll()
} }
}.onFailure { Log.e(TAG, "error binding camera", it) } }.onFailure { Log.e(TAG, "error binding camera", it) }
when (title) { when (title) {