diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteDirectEditFragment.kt b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteDirectEditFragment.kt index 95b76550d..a4809394a 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteDirectEditFragment.kt +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteDirectEditFragment.kt @@ -7,6 +7,8 @@ package it.niedermann.owncloud.notes.edit import android.annotation.SuppressLint +import android.content.ActivityNotFoundException +import android.content.Intent import android.net.http.SslError import android.os.Bundle import android.util.Log @@ -302,6 +304,30 @@ class NoteDirectEditFragment : BaseNoteFragment(), Branded { super.onReceivedSslError(view, handler, error) } } + + override fun shouldOverrideUrlLoading( + view: WebView?, + request: WebResourceRequest?, + ): Boolean { + val url = request?.url ?: return false + val scheme = url.scheme?.lowercase() + val accountUrl = runCatching { account.url }.getOrNull() + if ((scheme == "http" || scheme == "https") && + accountUrl != null && url.toString().startsWith(accountUrl) + ) { + return false + } + return try { + val intent = Intent(Intent.ACTION_VIEW, url).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + } + startActivity(intent) + true + } catch (e: ActivityNotFoundException) { + Log.w(TAG, "No app available to open $url", e) + true + } + } } }