From 3deed262dad10990a68f275f886c36946b43cd4e Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Wed, 13 Mar 2024 09:09:44 -0600 Subject: [wallet] Make payto:// URIs shareable bug 0008534 --- .../manual/ManualWithdrawSuccessFragment.kt | 21 +++++++++++++-------- .../taler/wallet/withdraw/manual/ScreenTransfer.kt | 13 ++++++++++++- 2 files changed, 25 insertions(+), 9 deletions(-) (limited to 'wallet/src/main/java/net') 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 -- cgit v1.2.3