Skip to content

Commit 3dbffab

Browse files
committed
feat: flashlight control
1 parent 7ec3817 commit 3dbffab

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

app/src/main/java/to/bitkit/ui/screens/scanner/QrScanningScreen.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package to.bitkit.ui.screens.scanner
44

55
import android.Manifest
66
import android.view.View.LAYER_TYPE_HARDWARE
7-
import android.widget.ImageButton
87
import androidx.camera.core.Camera
98
import androidx.camera.core.CameraSelector
109
import androidx.camera.core.ImageAnalysis
@@ -24,8 +23,6 @@ import androidx.compose.foundation.shape.CircleShape
2423
import androidx.compose.foundation.shape.RoundedCornerShape
2524
import androidx.compose.material.Icon
2625
import androidx.compose.material.IconButton
27-
import androidx.compose.material3.ShapeDefaults
28-
import androidx.compose.material3.Shapes
2926
import androidx.compose.runtime.Composable
3027
import androidx.compose.runtime.DisposableEffect
3128
import androidx.compose.runtime.LaunchedEffect
@@ -71,6 +68,7 @@ fun QrScanningScreen(
7168
// TODO maybe replace & drop accompanist permissions
7269
val cameraPermissionState = rememberPermissionState(Manifest.permission.CAMERA)
7370
val lensFacing by remember { mutableIntStateOf(CameraSelector.LENS_FACING_BACK) }
71+
var isFlashlightOn by remember { mutableStateOf(false) }
7472

7573
val lifecycleOwner = LocalLifecycleOwner.current
7674
DisposableEffect(lifecycleOwner) {
@@ -146,7 +144,10 @@ fun QrScanningScreen(
146144
grantedContent = {
147145
ScreenColumn(modifier = Modifier.gradientBackground()) {
148146
AppTopBar(stringResource(R.string.title_scan), onBackClick = { navController.popBackStack() })
149-
Content(previewView = previewView)
147+
Content(previewView = previewView, onClickCamera = {
148+
isFlashlightOn = !isFlashlightOn
149+
camera?.cameraControl?.enableTorch(isFlashlightOn)
150+
})
150151
}
151152
}
152153
)
@@ -155,6 +156,7 @@ fun QrScanningScreen(
155156
@Composable
156157
private fun Content(
157158
previewView: PreviewView,
159+
onClickCamera : () -> Unit,
158160
modifier: Modifier = Modifier,
159161
) {
160162
Column(
@@ -194,7 +196,7 @@ private fun Content(
194196
}
195197

196198
IconButton(
197-
onClick = {}, //TODO IMPLEMENT
199+
onClick = onClickCamera,
198200
modifier = Modifier
199201
.padding(16.dp)
200202
.clip(CircleShape)

0 commit comments

Comments
 (0)