From e9cc4d099c45c84054ffb03f8b1175f66fe254ce Mon Sep 17 00:00:00 2001 From: dimitris Date: Fri, 5 Jun 2026 16:26:06 +0200 Subject: [PATCH] Catch ActivityNotFoundException when opening external links --- .../src/main/java/net/cyclestreets/WebPageFragment.kt | 8 +++++++- .../src/main/res/values/strings.xml | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libraries/cyclestreets-fragments/src/main/java/net/cyclestreets/WebPageFragment.kt b/libraries/cyclestreets-fragments/src/main/java/net/cyclestreets/WebPageFragment.kt index a5d3ebbeb..f7b789beb 100644 --- a/libraries/cyclestreets-fragments/src/main/java/net/cyclestreets/WebPageFragment.kt +++ b/libraries/cyclestreets-fragments/src/main/java/net/cyclestreets/WebPageFragment.kt @@ -1,6 +1,7 @@ package net.cyclestreets import android.annotation.SuppressLint +import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent import android.net.Uri @@ -12,6 +13,7 @@ import android.view.ViewGroup import android.webkit.WebResourceRequest import android.webkit.WebView import android.webkit.WebViewClient +import android.widget.Toast import net.cyclestreets.fragments.R @@ -57,7 +59,11 @@ open class WebPageFragment : Fragment { // Otherwise, give the default behavior (open in browser) val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) - context.startActivity(intent) + try { + context.startActivity(intent) + } catch (e: ActivityNotFoundException) { + Toast.makeText(context, R.string.no_app_to_open_link, Toast.LENGTH_SHORT).show() + } return true } } diff --git a/libraries/cyclestreets-fragments/src/main/res/values/strings.xml b/libraries/cyclestreets-fragments/src/main/res/values/strings.xml index 1374ffa82..eacb1dfbf 100644 --- a/libraries/cyclestreets-fragments/src/main/res/values/strings.xml +++ b/libraries/cyclestreets-fragments/src/main/res/values/strings.xml @@ -65,4 +65,6 @@ Details %1$s route, %2$s + No app found to open this link +