commit e256cb05972af22b9121efca2a7251030b021784
parent 4e19c0d4896954054905c006714f0685f93bdc02
Author: Joel-Haeberli <haebu@rubigen.ch>
Date: Mon, 13 May 2024 00:17:56 +0200
fix: summary screen
Diffstat:
3 files changed, 34 insertions(+), 23 deletions(-)
diff --git a/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/ExchangeSelectionScreen.kt b/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/ExchangeSelectionScreen.kt
@@ -21,8 +21,8 @@ val exchanges = listOf(
TalerTerminalConfig(
"KUDOS Exchange (BFH)",
"http://taler-c2ec.ti.bfh.ch",
- "Wallee-2",
- "1A92pgloFR8WIgr0LDA+s9hbkO4EgyJlHj+3dQ9IJ9U="
+ "Wallee-3",
+ "YHrpzeHUyybGT5gOY9VAiZ7QAV/icOXtHPRKZTXv2n8="
),
TalerTerminalConfig(
diff --git a/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/SummaryActivity.kt b/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/SummaryActivity.kt
@@ -20,18 +20,14 @@ data class Summary(
@Json(name = "amount") val amount: Amount,
@Json(name = "fees") val fees: Amount,
@Json(name = "currency") val currency: String,
- @Json(name = "encodedWopid") val encodedWopid: String
+ @Json(name = "encodedWopid") val encodedWopid: String,
+ var success: Boolean = true
)
class SummaryActivity: ComponentActivity() {
companion object {
- var summary: Summary = Summary(
- Amount(0,0),
- Amount(0,0),
- "",
- ""
- )
+ var summary: Summary = reset()
private fun reset(): Summary = Summary(
Amount(0,0),
@@ -49,19 +45,31 @@ class SummaryActivity: ComponentActivity() {
Column (
horizontalAlignment = Alignment.CenterHorizontally
) {
- Text(
- text = "Amount authorized",
- color = Color.Yellow,
- modifier = Modifier.background(color = Color.Black)
- )
- Text(text = "Summary")
- Text(text = "Withdrawable Amount: ${summary.amount} ${summary.currency}")
- Text(text = "Fees: ${summary.fees} ${summary.currency}")
- Text(text = "Withdrawal Operation ID (QR Code):")
- QRCode(qrCodeContent = summary.encodedWopid, 2.dp)
+
+ if (summary.success) {
+ Text(
+ text = "Amount authorized",
+ color = Color.Yellow,
+ modifier = Modifier.background(color = Color.Black)
+ )
+ Text(text = "Summary")
+ Text(text = "Withdrawable Amount: ${summary.amount} ${summary.currency}")
+ Text(text = "Fees: ${summary.fees} ${summary.currency}")
+ Text(text = "Withdrawal Operation ID (QR Code):")
+ QRCode(qrCodeContent = summary.encodedWopid, 2.dp)
+ } else {
+
+ Text(text = "Failed processing transaction.")
+ Text(text = "Withdrawal aborted.")
+ }
Button(onClick = {
- this@SummaryActivity.startActivity(Intent(baseContext, MainActivity::class.java))
+ this@SummaryActivity.startActivity(
+ Intent(
+ baseContext,
+ MainActivity::class.java
+ )
+ )
reset()
finish()
}) {
diff --git a/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/WithdrawalViewModel.kt b/wallee-c2ec/app/src/main/java/ch/bfh/habej2/wallee_c2ec/withdrawal/WithdrawalViewModel.kt
@@ -2,13 +2,11 @@ package ch.bfh.habej2.wallee_c2ec.withdrawal
import android.app.Activity
import android.content.Intent
-import android.os.Bundle
import androidx.compose.runtime.Stable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
-import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import ch.bfh.habej2.wallee_c2ec.client.taler.TerminalClient
@@ -195,6 +193,7 @@ class WithdrawalViewModel(
println("authorization state: ${_uiState.value.transactionState}")
if (_uiState.value.transactionState == TransactionState.AUTHORIZATION_FAILED) {
println("authorization failed... aborting withdrawal")
+ withdrawalOperationFailed()
return
}
@@ -245,7 +244,7 @@ class WithdrawalViewModel(
terminalClient!!.sendConfirmationRequest(
_uiState.value.encodedWopid,
TerminalWithdrawalConfirmationRequest(
- _uiState.value.encodedWopid,
+ _uiState.value.transactionId,
Amount(0, 0)
)
) {
@@ -282,6 +281,10 @@ class WithdrawalViewModel(
fun withdrawalOperationFailed() {
viewModelScope.launch {
terminalClient!!.abortWithdrawal(uiState.value.encodedWopid) {}
+ SummaryActivity.summary.success = false
+ val activity = WithdrawalActivity()
+ val intent = Intent(activity, SummaryActivity::class.java)
+ activity.startActivity(intent)
}
}