From 21fd9faa21deb85f5f3a97cbe8e963d91638fca3 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Sat, 11 Feb 2023 11:24:58 -0600 Subject: [wallet] Fixed broken fulfillment URL and made it visually clear that it is a link #0007675 --- wallet/src/main/java/net/taler/wallet/Utils.kt | 7 +++++++ .../net/taler/wallet/exchanges/ExchangeFeesFragment.kt | 6 ++---- .../wallet/transactions/TransactionDetailFragment.kt | 16 ++++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) (limited to 'wallet/src/main/java/net/taler') 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 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) } -- cgit v1.2.3