summaryrefslogtreecommitdiff
path: root/wallet/src/main
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2024-03-13 09:09:44 -0600
committerTorsten Grote <t@grobox.de>2024-03-13 16:48:39 -0300
commit3deed262dad10990a68f275f886c36946b43cd4e (patch)
tree3af093e955d2fac6d0a077d4666467633dd21e89 /wallet/src/main
parent1ee82ca8a03886fc5b466d294b4927406cee8d9d (diff)
downloadtaler-android-3deed262dad10990a68f275f886c36946b43cd4e.tar.gz
taler-android-3deed262dad10990a68f275f886c36946b43cd4e.tar.bz2
taler-android-3deed262dad10990a68f275f886c36946b43cd4e.zip
[wallet] Make payto:// URIs shareable
bug 0008534
Diffstat (limited to 'wallet/src/main')
-rw-r--r--wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawSuccessFragment.kt21
-rw-r--r--wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenTransfer.kt13
-rw-r--r--wallet/src/main/res/values/strings.xml1
3 files changed, 26 insertions, 9 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawSuccessFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawSuccessFragment.kt
index 8d83427..f09d275 100644
--- a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawSuccessFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ManualWithdrawSuccessFragment.kt
@@ -16,8 +16,6 @@
package net.taler.wallet.withdraw.manual
-import android.content.Intent
-import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -27,7 +25,8 @@ import androidx.compose.ui.platform.ComposeView
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
-import net.taler.common.startActivitySafe
+import net.taler.common.openUri
+import net.taler.common.shareText
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.compose.TalerSurface
@@ -68,17 +67,23 @@ class ManualWithdrawSuccessFragment : Fragment() {
ScreenTransfer(
status = status,
bankAppClick = { onBankAppClick(it) },
+ shareClick = { onShareClick(it) },
)
}
}
}
private fun onBankAppClick(transfer: TransferData) {
- val intent = Intent().apply { data = Uri.parse(transfer.withdrawalAccount.paytoUri) }
- val componentName = intent.resolveActivity(requireContext().packageManager)
- if (componentName != null) {
- requireContext().startActivitySafe(intent)
- }
+ requireContext().openUri(
+ uri = transfer.withdrawalAccount.paytoUri,
+ title = requireContext().getString(R.string.share_payment)
+ )
+ }
+
+ private fun onShareClick(transfer: TransferData) {
+ requireContext().shareText(
+ text = transfer.withdrawalAccount.paytoUri,
+ )
}
override fun onStart() {
diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenTransfer.kt b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenTransfer.kt
index b9fd9dd..d75c685 100644
--- a/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenTransfer.kt
+++ b/wallet/src/main/java/net/taler/wallet/withdraw/manual/ScreenTransfer.kt
@@ -47,6 +47,7 @@ import androidx.compose.ui.unit.dp
import net.taler.common.Amount
import net.taler.wallet.CURRENCY_BTC
import net.taler.wallet.R
+import net.taler.wallet.compose.ShareButton
import net.taler.wallet.balances.CurrencySpecification
import net.taler.wallet.compose.copyToClipBoard
import net.taler.wallet.transactions.AmountType
@@ -59,6 +60,7 @@ import net.taler.wallet.withdraw.WithdrawStatus
fun ScreenTransfer(
status: WithdrawStatus.ManualTransferRequired,
bankAppClick: ((transfer: TransferData) -> Unit)?,
+ shareClick: ((transfer: TransferData) -> Unit)?,
) {
// TODO: show some placeholder
if (status.withdrawalTransfers.isEmpty()) return
@@ -111,11 +113,19 @@ fun ScreenTransfer(
Button(
onClick = { bankAppClick(selectedTransfer) },
modifier = Modifier
- .padding(bottom = 16.dp)
+ .padding(bottom = 16.dp),
) {
Text(text = stringResource(R.string.withdraw_manual_ready_bank_button))
}
}
+
+ if (shareClick != null) {
+ ShareButton(
+ content = selectedTransfer.withdrawalAccount.paytoUri,
+ modifier = Modifier
+ .padding(bottom = 16.dp),
+ )
+ }
}
}
}
@@ -296,6 +306,7 @@ fun ScreenTransferPreview() {
),
),
bankAppClick = {},
+ shareClick = {},
)
}
} \ No newline at end of file
diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml
index 48ec647..82a67b6 100644
--- a/wallet/src/main/res/values/strings.xml
+++ b/wallet/src/main/res/values/strings.xml
@@ -61,6 +61,7 @@ GNU Taler is immune against many types of fraud, such as phishing of credit card
<string name="char_count">%1$d/%2$d</string>
<string name="import_db">Import</string>
<string name="reset">Reset</string>
+ <string name="share_payment">Share payment link</string>
<string name="offline">Operation requires internet access. Please ensure your internet connection works and try again.</string>
<string name="offline_banner">No internet access</string>