Skip to content

Commit 002483a

Browse files
authored
Merge pull request #104 from synonymdev/feat/scan-clipboard
Implement clipboard scan
2 parents 0267a8e + 2ecacdd commit 002483a

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

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

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ import to.bitkit.ui.shared.util.gradientBackground
6767
import to.bitkit.ui.theme.Colors
6868
import to.bitkit.utils.Logger
6969
import java.util.concurrent.Executors
70+
import android.content.ClipboardManager
71+
import android.content.ClipData
7072

7173
@Composable
7274
fun QrScanningScreen(
@@ -177,6 +179,22 @@ fun QrScanningScreen(
177179
} else {
178180
galleryLauncher.launch("image/*")
179181
}
182+
},
183+
onPasteFromClipboard = {
184+
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
185+
if (clipboard.hasPrimaryClip()) {
186+
val clipData: ClipData = clipboard.primaryClip ?: return@Content
187+
if (clipData.itemCount > 0) {
188+
val text = clipData.getItemAt(0).text.toString()
189+
if (text.isNotBlank()) {
190+
onScanSuccess(text)
191+
} else {
192+
app.toast(Exception("Clipboard is empty or doesn't contain text"))
193+
}
194+
}
195+
} else {
196+
app.toast(Exception("Clipboard is empty"))
197+
}
180198
}
181199
)
182200
}
@@ -189,6 +207,7 @@ private fun Content(
189207
previewView: PreviewView,
190208
onClickFlashlight: () -> Unit,
191209
onClickGallery: () -> Unit,
210+
onPasteFromClipboard: () -> Unit,
192211
modifier: Modifier = Modifier,
193212
) {
194213
Column(
@@ -255,7 +274,7 @@ private fun Content(
255274
)
256275
},
257276
text = stringResource(R.string.other__qr_paste),
258-
onClick = {} //TODO IMPLEMENT
277+
onClick = onPasteFromClipboard
259278
)
260279
Spacer(modifier = Modifier.height(16.dp))
261280
}

0 commit comments

Comments
 (0)