[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-android] 04/07: [wallet] change how we check if launching i
From: |
gnunet |
Subject: |
[taler-taler-android] 04/07: [wallet] change how we check if launching intents is safe |
Date: |
Tue, 08 Sep 2020 22:02:45 +0200 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository taler-android.
commit 7260531f37b5832b3a0f8059bf931919a6e0b059
Author: Torsten Grote <t@grobox.de>
AuthorDate: Tue Sep 8 13:43:04 2020 -0300
[wallet] change how we check if launching intents is safe
Resolving activities won't work anymore in Android 11.
See: https://cketti.de/2020/09/03/avoid-intent-resolveactivity/
---
.../src/main/java/net/taler/common/AndroidUtils.kt | 10 ++++++++--
.../net/taler/wallet/transactions/TransactionDetailFragment.kt | 6 ++----
.../taler/wallet/transactions/TransactionWithdrawalFragment.kt | 6 ++----
3 files changed, 12 insertions(+), 10 deletions(-)
diff --git
a/taler-kotlin-android/src/main/java/net/taler/common/AndroidUtils.kt
b/taler-kotlin-android/src/main/java/net/taler/common/AndroidUtils.kt
index 72740df..c925515 100644
--- a/taler-kotlin-android/src/main/java/net/taler/common/AndroidUtils.kt
+++ b/taler-kotlin-android/src/main/java/net/taler/common/AndroidUtils.kt
@@ -16,6 +16,7 @@
package net.taler.common
+import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Context.CONNECTIVITY_SERVICE
import android.content.Intent
@@ -35,6 +36,7 @@ import android.text.format.DateUtils.FORMAT_SHOW_YEAR
import android.text.format.DateUtils.MINUTE_IN_MILLIS
import android.text.format.DateUtils.formatDateTime
import android.text.format.DateUtils.getRelativeTimeSpanString
+import android.util.Log
import android.view.View
import android.view.View.INVISIBLE
import android.view.View.VISIBLE
@@ -100,8 +102,12 @@ fun Context.showLogViewer() {
startActivity(lynxActivityIntent)
}
-fun Intent.isSafe(context: Context): Boolean {
- return context.packageManager.queryIntentActivities(this,
MATCH_DEFAULT_ONLY).isNotEmpty()
+fun Fragment.startActivitySafe(intent: Intent) {
+ try {
+ startActivity(intent)
+ } catch (e: ActivityNotFoundException) {
+ Log.e("taler-kotlin-android", "Error starting $intent", e)
+ }
}
fun Fragment.navigate(directions: NavDirections) =
findNavController().navigate(directions)
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 302e684..866b363 100644
---
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
@@ -25,7 +25,7 @@ import android.view.MenuItem
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
-import net.taler.common.isSafe
+import net.taler.common.startActivitySafe
import net.taler.lib.common.Amount
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
@@ -80,9 +80,7 @@ abstract class TransactionDetailFragment : Fragment() {
val i = Intent().apply {
data = Uri.parse(info.fulfillmentUrl)
}
- if (i.isSafe(requireContext())) {
- orderSummaryView.setOnClickListener { startActivity(i) }
- }
+ orderSummaryView.setOnClickListener { startActivitySafe(i) }
}
orderIdView.text = getString(R.string.transaction_order_id,
info.orderId)
}
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 26965ef..96782fd 100644
---
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
+++
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
@@ -22,7 +22,7 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import net.taler.common.isSafe
+import net.taler.common.startActivitySafe
import net.taler.common.toAbsoluteTime
import net.taler.wallet.R
import net.taler.wallet.cleanExchange
@@ -53,9 +53,7 @@ class TransactionWithdrawalFragment :
TransactionDetailFragment() {
val i = Intent().apply {
data = Uri.parse(t.withdrawalDetails.bankConfirmationUrl)
}
- if (i.isSafe(requireContext())) {
- ui.confirmWithdrawalButton.setOnClickListener {
startActivity(i) }
- }
+ ui.confirmWithdrawalButton.setOnClickListener {
startActivitySafe(i) }
} else ui.confirmWithdrawalButton.visibility = View.GONE
ui.chosenAmountLabel.text = getString(R.string.amount_chosen)
ui.chosenAmountView.text =
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-android] branch master updated (663d264 -> d351f89), gnunet, 2020/09/08
- [taler-taler-android] 01/07: [wallet] prepare play store upload, gnunet, 2020/09/08
- [taler-taler-android] 02/07: [pos] prepare for play store upload, gnunet, 2020/09/08
- [taler-taler-android] 03/07: [cashier] prepare play store upload, gnunet, 2020/09/08
- [taler-taler-android] 04/07: [wallet] change how we check if launching intents is safe,
gnunet <=
- [taler-taler-android] 06/07: [wallet] Use bottom sheet to show errors instead of snackbar, gnunet, 2020/09/08
- [taler-taler-android] 07/07: Fix minor lint warnings, gnunet, 2020/09/08
- [taler-taler-android] 05/07: [pos] use bottom sheet for showing errors instead of snackbar, gnunet, 2020/09/08