From 7260531f37b5832b3a0f8059bf931919a6e0b059 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 8 Sep 2020 13:43:04 -0300 Subject: [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 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'taler-kotlin-android') 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) -- cgit v1.2.3