summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-01-17 16:36:06 -0600
committerIván Ávalos <avalos@disroot.org>2023-01-18 10:54:44 -0600
commitbadc5aa771a4af9c9cd321a3300729b5104a3661 (patch)
treea89ff34d7a0ce55cd36b39951001cdd3a8f839ea /wallet/src/main/java/net/taler
parentc725df9a528ff1bfe2f912c19c06eb4588fbbb62 (diff)
downloadtaler-android-badc5aa771a4af9c9cd321a3300729b5104a3661.tar.gz
taler-android-badc5aa771a4af9c9cd321a3300729b5104a3661.tar.bz2
taler-android-badc5aa771a4af9c9cd321a3300729b5104a3661.zip
[wallet] Implemented custom tabs
Diffstat (limited to 'wallet/src/main/java/net/taler')
-rw-r--r--wallet/src/main/java/net/taler/wallet/UriInputFragment.kt6
-rw-r--r--wallet/src/main/java/net/taler/wallet/Utils.kt8
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt17
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt7
4 files changed, 18 insertions, 20 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/UriInputFragment.kt b/wallet/src/main/java/net/taler/wallet/UriInputFragment.kt
index 00ec404..c65c53a 100644
--- a/wallet/src/main/java/net/taler/wallet/UriInputFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/UriInputFragment.kt
@@ -17,9 +17,6 @@
package net.taler.wallet
import android.content.ClipboardManager
-import android.content.Intent
-import android.content.Intent.ACTION_VIEW
-import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -62,8 +59,7 @@ class UriInputFragment : Fragment() {
if (ui.uriView.text?.startsWith("taler://", ignoreCase = true) == true ||
ui.uriView.text?.startsWith("payto://", ignoreCase = true) == true) {
ui.uriLayout.error = null
- val i = Intent(ACTION_VIEW, Uri.parse(ui.uriView.text.toString()))
- startActivity(i)
+ launchInAppBrowser(requireContext(), ui.uriView.text.toString())
} else {
ui.uriLayout.error = getString(R.string.uri_invalid)
}
diff --git a/wallet/src/main/java/net/taler/wallet/Utils.kt b/wallet/src/main/java/net/taler/wallet/Utils.kt
index 0a2b220..259e3f4 100644
--- a/wallet/src/main/java/net/taler/wallet/Utils.kt
+++ b/wallet/src/main/java/net/taler/wallet/Utils.kt
@@ -21,6 +21,7 @@ import android.net.ConnectivityManager
import android.net.ConnectivityManager.NetworkCallback
import android.net.NetworkCapabilities
import android.net.NetworkRequest
+import android.net.Uri
import android.net.wifi.WifiConfiguration
import android.net.wifi.WifiManager
import android.net.wifi.WifiNetworkSpecifier
@@ -28,6 +29,7 @@ import android.os.Build.VERSION.SDK_INT
import android.widget.Toast
import android.widget.Toast.LENGTH_LONG
import androidx.annotation.RequiresApi
+import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.getSystemService
import net.taler.common.Amount
import net.taler.common.AmountParserException
@@ -108,3 +110,9 @@ fun <T> Transaction.handleKyc(notRequired: () -> T, required: (TalerErrorInfo) -
}
} ?: notRequired()
}
+
+fun launchInAppBrowser(context: Context, url: String) {
+ val builder = CustomTabsIntent.Builder()
+ val intent = builder.build()
+ intent.launchUrl(context, Uri.parse(url))
+} \ No newline at end of file
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
index 531d0db..ffc9005 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
@@ -16,9 +16,6 @@
package net.taler.wallet.transactions
-import android.content.Intent
-import android.content.Intent.ACTION_VIEW
-import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -27,13 +24,13 @@ import android.view.View.VISIBLE
import android.view.ViewGroup
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
-import net.taler.common.startActivitySafe
import net.taler.common.toAbsoluteTime
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.cleanExchange
import net.taler.wallet.databinding.FragmentTransactionWithdrawalBinding
import net.taler.wallet.handleKyc
+import net.taler.wallet.launchInAppBrowser
import net.taler.wallet.transactions.WithdrawalDetails.ManualTransfer
import net.taler.wallet.transactions.WithdrawalDetails.TalerBankIntegrationApi
import net.taler.wallet.withdraw.createManualTransferRequired
@@ -89,10 +86,9 @@ class TransactionWithdrawalFragment : TransactionDetailFragment() {
if (t.withdrawalDetails is TalerBankIntegrationApi &&
t.withdrawalDetails.bankConfirmationUrl != null
) {
- val i = Intent(ACTION_VIEW).apply {
- data = Uri.parse(t.withdrawalDetails.bankConfirmationUrl)
+ ui.confirmWithdrawalButton.setOnClickListener {
+ launchInAppBrowser(requireContext(), t.withdrawalDetails.bankConfirmationUrl)
}
- ui.confirmWithdrawalButton.setOnClickListener { startActivitySafe(i) }
} else if (t.withdrawalDetails is ManualTransfer) {
ui.confirmWithdrawalButton.setText(R.string.withdraw_manual_ready_details_intro)
ui.confirmWithdrawalButton.setOnClickListener {
@@ -115,9 +111,10 @@ class TransactionWithdrawalFragment : TransactionDetailFragment() {
private fun setupActionButton(t: TransactionWithdrawal) {
ui.actionButton.visibility = t.handleKyc({ GONE }) { error ->
ui.actionButton.setText(R.string.transaction_action_kyc)
- error.kycUrl?.let {
- val i = Intent(ACTION_VIEW, Uri.parse(it))
- ui.actionButton.setOnClickListener { startActivitySafe(i) }
+ error.kycUrl?.let { kycUrl ->
+ ui.actionButton.setOnClickListener {
+ launchInAppBrowser(requireContext(), kycUrl)
+ }
}
VISIBLE
}
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
index 961c314..09adb3e 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
@@ -16,8 +16,6 @@
package net.taler.wallet.transactions
-import android.content.Intent
-import android.net.Uri
import android.os.Bundle
import android.view.ActionMode
import android.view.LayoutInflater
@@ -41,11 +39,11 @@ import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
import net.taler.common.Amount
import net.taler.common.fadeIn
import net.taler.common.fadeOut
-import net.taler.common.startActivitySafe
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.databinding.FragmentTransactionsBinding
import net.taler.wallet.handleKyc
+import net.taler.wallet.launchInAppBrowser
interface OnTransactionClickListener {
fun onTransactionClicked(transaction: Transaction)
@@ -185,8 +183,7 @@ class TransactionsFragment : Fragment(), OnTransactionClickListener, ActionMode.
override fun onActionButtonClicked(transaction: Transaction) {
transaction.handleKyc({ error("Unhandled Action Button Event") }) { error ->
error.kycUrl?.let {
- val i = Intent(Intent.ACTION_VIEW, Uri.parse(it))
- startActivitySafe(i)
+ launchInAppBrowser(requireContext(), it)
}
}
}