Skip to content

Commit 2e54682

Browse files
committed
refactor: extract shared gallery callbacks
1 parent 54fe447 commit 2e54682

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

app/src/main/java/to/bitkit/ui/screens/wallets/send/SendRecipientScreen.kt

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ fun SendRecipientScreen(
115115
}
116116

117117
// QR code analyzer with auto-proceed callback
118-
val analyzer = remember {
118+
val analyzer = remember(onEvent) {
119119
QrCodeAnalyzer { result ->
120120
if (result.isSuccess) {
121121
val qrCode = result.getOrThrow()
@@ -185,20 +185,29 @@ fun SendRecipientScreen(
185185
}
186186

187187
// Gallery picker launchers
188+
val handleGalleryScanSuccess = remember(onEvent) {
189+
{ qrCode: String ->
190+
Logger.debug("QR from gallery: $qrCode")
191+
onEvent(SendEvent.AddressContinue(qrCode))
192+
}
193+
}
194+
195+
val handleGalleryError = remember(app) {
196+
{ e: Exception ->
197+
app?.toast(e)
198+
Unit
199+
}
200+
}
201+
188202
val galleryLauncher = rememberLauncherForActivityResult(
189203
contract = ActivityResultContracts.GetContent(),
190204
onResult = { uri ->
191205
uri?.let {
192206
processImageFromGallery(
193207
context = context,
194208
uri = it,
195-
onScanSuccess = { qrCode ->
196-
Logger.debug("QR from gallery: $qrCode")
197-
onEvent(SendEvent.AddressContinue(qrCode))
198-
},
199-
onError = { e ->
200-
app?.toast(e)
201-
}
209+
onScanSuccess = handleGalleryScanSuccess,
210+
onError = handleGalleryError
202211
)
203212
}
204213
}
@@ -211,13 +220,8 @@ fun SendRecipientScreen(
211220
processImageFromGallery(
212221
context = context,
213222
uri = it,
214-
onScanSuccess = { qrCode ->
215-
Logger.debug("QR from photo picker: $qrCode")
216-
onEvent(SendEvent.AddressContinue(qrCode))
217-
},
218-
onError = { e ->
219-
app?.toast(e)
220-
}
223+
onScanSuccess = handleGalleryScanSuccess,
224+
onError = handleGalleryError
221225
)
222226
}
223227
}

0 commit comments

Comments
 (0)