@@ -21,10 +21,8 @@ import androidx.camera.view.PreviewView
2121import androidx.compose.foundation.background
2222import androidx.compose.foundation.layout.Box
2323import androidx.compose.foundation.layout.Column
24- import androidx.compose.foundation.layout.Spacer
2524import androidx.compose.foundation.layout.fillMaxSize
2625import androidx.compose.foundation.layout.fillMaxWidth
27- import androidx.compose.foundation.layout.height
2826import androidx.compose.foundation.layout.navigationBarsPadding
2927import androidx.compose.foundation.layout.padding
3028import androidx.compose.foundation.layout.size
@@ -46,6 +44,7 @@ import androidx.compose.ui.Modifier
4644import androidx.compose.ui.draw.clip
4745import androidx.compose.ui.draw.clipToBounds
4846import androidx.compose.ui.platform.LocalContext
47+ import androidx.compose.ui.platform.testTag
4948import androidx.compose.ui.res.painterResource
5049import androidx.compose.ui.res.stringResource
5150import androidx.compose.ui.unit.dp
@@ -65,10 +64,15 @@ import kotlinx.coroutines.Dispatchers
6564import kotlinx.coroutines.delay
6665import kotlinx.coroutines.withContext
6766import to.bitkit.R
67+ import to.bitkit.env.Env
6868import to.bitkit.ext.getClipboardText
6969import to.bitkit.models.Toast
7070import to.bitkit.ui.appViewModel
7171import to.bitkit.ui.components.PrimaryButton
72+ import to.bitkit.ui.components.SecondaryButton
73+ import to.bitkit.ui.components.TextInput
74+ import to.bitkit.ui.components.VerticalSpacer
75+ import to.bitkit.ui.scaffold.AppAlertDialog
7276import to.bitkit.ui.scaffold.AppTopBar
7377import to.bitkit.ui.scaffold.SheetTopBar
7478import to.bitkit.ui.shared.util.gradientBackground
@@ -231,7 +235,8 @@ fun QrScanningScreen(
231235 galleryLauncher.launch(" image/*" )
232236 }
233237 },
234- onPasteFromClipboard = handlePaste(context, app, setScanResult)
238+ onPasteFromClipboard = handlePaste(context, app, setScanResult),
239+ onSubmitDebug = setScanResult,
235240 )
236241 }
237242 }
@@ -262,6 +267,7 @@ private fun Content(
262267 onClickGallery : () -> Unit ,
263268 onPasteFromClipboard : () -> Unit ,
264269 modifier : Modifier = Modifier ,
270+ onSubmitDebug : (String? ) -> Unit ,
265271) {
266272 Column (
267273 modifier = modifier
@@ -313,7 +319,7 @@ private fun Content(
313319 )
314320 }
315321 }
316- Spacer (modifier = Modifier .height( 16 .dp) )
322+ VerticalSpacer ( 16 .dp)
317323 PrimaryButton (
318324 icon = {
319325 Icon (
@@ -324,7 +330,35 @@ private fun Content(
324330 text = stringResource(R .string.other__qr_paste),
325331 onClick = onPasteFromClipboard,
326332 )
327- Spacer (modifier = Modifier .height(16 .dp))
333+
334+ @Suppress(" KotlinConstantConditions" )
335+ if (Env .isE2eTest) {
336+ var showDialog by remember { mutableStateOf(false ) }
337+ var debugValue by remember { mutableStateOf(" " ) }
338+ VerticalSpacer (16 .dp)
339+ SecondaryButton (
340+ text = " Enter QRCode String" ,
341+ onClick = { showDialog = true },
342+ modifier = Modifier .testTag(" ScanPrompt" )
343+ )
344+ if (showDialog) {
345+ AppAlertDialog (
346+ title = " " ,
347+ confirmText = stringResource(R .string.common__yes_proceed),
348+ onConfirm = { onSubmitDebug(debugValue) },
349+ onDismiss = { showDialog = false },
350+ modifier = Modifier .testTag(" QRDialog" )
351+ ) {
352+ TextInput (
353+ value = debugValue,
354+ onValueChange = { debugValue = it },
355+ modifier = Modifier .testTag(" QRInput" )
356+ )
357+ }
358+ }
359+ }
360+
361+ VerticalSpacer (16 .dp)
328362 }
329363}
330364
0 commit comments