Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,11 @@ internal fun MpayQrScreen(
MpayQrEvent.OnNavigateBack -> navigateBack.invoke()
MpayQrEvent.QrDownloaded -> snackbarHostState.showSnackbar(downloadedMessage)
is MpayQrEvent.ShowSnackbar -> {
clipboardManager.setText(AnnotatedString(event.message))
snackbarHostState.showSnackbar(event.message)
}

is MpayQrEvent.CopyToClipboard -> {
clipboardManager.setText(AnnotatedString(event.text))
snackbarHostState.showSnackbar(copiedMessage)
}
}
Expand Down Expand Up @@ -292,6 +296,7 @@ private fun MpayQrScreenContent(
modifier = Modifier.padding(horizontal = KptTheme.spacing.sm),
)
}

1 -> {
// Inter-Bank - show QR or placeholder
if (contentState.interBankData != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,12 @@ class MpayQrViewModel(
}
}

is MpayQrAction.ShowSnackbar -> {
sendEvent(MpayQrEvent.ShowSnackbar(action.message))
}

is MpayQrAction.CopyToClipboard -> {
sendEvent(MpayQrEvent.ShowSnackbar(action.text))
sendEvent(MpayQrEvent.CopyToClipboard(action.text))
}

is MpayQrAction.ShowAccountPicker -> {
Expand Down Expand Up @@ -320,26 +324,36 @@ class MpayQrViewModel(

private fun initiateSetAmount() {
viewModelScope.launch {
val intraBankData = withContext(ioDispatcher) {
MpayQrCodeProcessor.encodeMpayString(state.qrData)
}
try {
val intraBankData = withContext(ioDispatcher) {
MpayQrCodeProcessor.encodeMpayString(state.qrData)
}

val interBankData = if (state.accountExternalId.isNotBlank()) {
withContext(ioDispatcher) {
MpayQrCodeProcessor.encodeMpayString(state.interBankQrData)
val interBankData = if (state.accountExternalId.isNotBlank()) {
withContext(ioDispatcher) {
MpayQrCodeProcessor.encodeMpayString(state.interBankQrData)
}
} else {
null
}
} else {
null
}

updateContent {
it.copy(
intraBankData = intraBankData,
interBankData = interBankData,
)
}
updateContent {
it.copy(
intraBankData = intraBankData,
interBankData = interBankData,
)
}

mutableStateFlow.update { it.copy(dialogState = null) }
mutableStateFlow.update { it.copy(dialogState = null) }
} catch (e: IllegalArgumentException) {
mutableStateFlow.update {
it.copy(
dialogState = null,
qrData = it.qrData.copy(amount = ""),
)
}
sendEvent(MpayQrEvent.ShowSnackbar(e.message ?: "Invalid amount entered"))
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
}
}

Expand Down Expand Up @@ -510,6 +524,7 @@ sealed interface MpayQrEvent {
data object OnNavigateBack : MpayQrEvent
data object QrDownloaded : MpayQrEvent
data class ShowSnackbar(val message: String) : MpayQrEvent
data class CopyToClipboard(val text: String) : MpayQrEvent
}

sealed interface MpayQrAction {
Expand Down Expand Up @@ -559,6 +574,7 @@ sealed interface MpayQrAction {
}
}

data class ShowSnackbar(val message: String) : MpayQrAction
data class CopyToClipboard(val text: String) : MpayQrAction

sealed interface Internal : MpayQrAction {
Expand Down
Loading