summaryrefslogtreecommitdiff
path: root/wallet/src/main
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-02-11 11:24:58 -0600
committerTorsten Grote <t@grobox.de>2023-02-15 11:36:44 -0300
commit21fd9faa21deb85f5f3a97cbe8e963d91638fca3 (patch)
tree4f1cdde6b5a815d103e93c6e85143f29bf4608f7 /wallet/src/main
parentc522bcca7b7bfbb2214b29af1b58cde92f1f2611 (diff)
downloadtaler-android-21fd9faa21deb85f5f3a97cbe8e963d91638fca3.tar.gz
taler-android-21fd9faa21deb85f5f3a97cbe8e963d91638fca3.tar.bz2
taler-android-21fd9faa21deb85f5f3a97cbe8e963d91638fca3.zip
[wallet] Fixed broken fulfillment URL and made it visually clear that it is a link
#0007675
Diffstat (limited to 'wallet/src/main')
-rw-r--r--wallet/src/main/java/net/taler/wallet/Utils.kt7
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeFeesFragment.kt6
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt16
3 files changed, 19 insertions, 10 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/Utils.kt b/wallet/src/main/java/net/taler/wallet/Utils.kt
index ed1899f..435aa96 100644
--- a/wallet/src/main/java/net/taler/wallet/Utils.kt
+++ b/wallet/src/main/java/net/taler/wallet/Utils.kt
@@ -26,6 +26,7 @@ import android.net.wifi.WifiConfiguration
import android.net.wifi.WifiManager
import android.net.wifi.WifiNetworkSpecifier
import android.os.Build.VERSION.SDK_INT
+import android.util.TypedValue
import android.widget.Toast
import android.widget.Toast.LENGTH_LONG
import androidx.annotation.RequiresApi
@@ -103,6 +104,12 @@ fun getAmount(currency: String, text: String): Amount? {
}
}
+fun Context.getAttrColor(attr: Int): Int {
+ val value = TypedValue()
+ theme.resolveAttribute(attr, value, true)
+ return value.data
+}
+
fun <T> Transaction.handleKyc(notRequired: () -> T, required: (TalerErrorInfo) -> T): T {
return error?.let { error ->
when (error.code) {
diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeFeesFragment.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeFeesFragment.kt
index 5ba204c..d42ab2c 100644
--- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeFeesFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeFeesFragment.kt
@@ -17,7 +17,6 @@
package net.taler.wallet.exchanges
import android.os.Bundle
-import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.View.GONE
@@ -35,6 +34,7 @@ import net.taler.wallet.R
import net.taler.wallet.databinding.FragmentExchangeFeesBinding
import net.taler.wallet.exchanges.CoinFeeAdapter.CoinFeeViewHolder
import net.taler.wallet.exchanges.WireFeeAdapter.WireFeeViewHolder
+import net.taler.wallet.getAttrColor
class ExchangeFeesFragment : Fragment() {
@@ -71,9 +71,7 @@ class ExchangeFeesFragment : Fragment() {
if (amount.isZero()) text = amount.toString()
else {
text = getString(R.string.amount_negative, amount)
- val value = TypedValue()
- requireContext().theme.resolveAttribute(R.attr.colorError, value, true)
- setTextColor(value.data)
+ setText(requireContext().getAttrColor(R.attr.colorError))
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
index bfafb80..b4008b0 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
@@ -16,9 +16,9 @@
package net.taler.wallet.transactions
-import android.content.Intent
-import android.net.Uri
import android.os.Bundle
+import android.text.SpannableString
+import android.text.style.UnderlineSpan
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
@@ -29,9 +29,10 @@ import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import net.taler.common.Amount
-import net.taler.common.startActivitySafe
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
+import net.taler.wallet.getAttrColor
+import net.taler.wallet.launchInAppBrowser
abstract class TransactionDetailFragment : Fragment() {
@@ -83,10 +84,13 @@ abstract class TransactionDetailFragment : Fragment() {
"${info.summary}\n\n${info.fulfillmentMessage}"
}
if (info.fulfillmentUrl?.startsWith("http", ignoreCase = true) == true) {
- val i = Intent().apply {
- data = Uri.parse(info.fulfillmentUrl)
+ val content = SpannableString(info.summary)
+ content.setSpan(UnderlineSpan(), 0, info.summary.length, 0)
+ orderSummaryView.text = content
+ orderSummaryView.setTextColor(requireContext().getAttrColor(android.R.attr.textColorLink))
+ orderSummaryView.setOnClickListener {
+ launchInAppBrowser(requireContext(), info.fulfillmentUrl)
}
- orderSummaryView.setOnClickListener { requireContext().startActivitySafe(i) }
}
orderIdView.text = getString(R.string.transaction_order_id, info.orderId)
}