From 081225947099ac0e16025e344f20aa558a8f336b Mon Sep 17 00:00:00 2001 From: Amine Date: Mon, 23 Oct 2017 15:09:23 +0200 Subject: [PATCH] Temporary workaround for #83. --- CHANGELOG.md | 2 + .../bou/readerforselfoss/utils/LinksUtils.kt | 37 +++++++++++-------- app/src/main/res/values/strings.xml | 1 + 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a79a8f..c62b0de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Fixed logs not working. +- Temporary workaround handling opening invalid urls. Waiting to solve #83. + **1.5.3.05** - Fixed an issue on older versions of Android. diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt index 1bb72e9..e037a58 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt @@ -8,6 +8,7 @@ import android.graphics.BitmapFactory import android.net.Uri import android.support.customtabs.CustomTabsIntent import android.util.Patterns +import android.widget.Toast import apps.amine.bou.readerforselfoss.R import apps.amine.bou.readerforselfoss.ReaderActivity import apps.amine.bou.readerforselfoss.utils.customtabs.CustomTabActivityHelper @@ -54,30 +55,34 @@ fun Context.openItemUrl(linkDecoded: String, articleViewer: Boolean, app: Activity) { - if (!internalBrowser || !linkDecoded.isUrlValid()) { - openInBrowser(linkDecoded, app) + if (!linkDecoded.isUrlValid()) { + Toast.makeText(this, this.getString(R.string.cant_open_invalid_url), Toast.LENGTH_LONG).show() } else { - if (articleViewer) { - val intent = Intent(this, ReaderActivity::class.java) + if (!internalBrowser) { + openInBrowser(linkDecoded, app) + } else { + if (articleViewer) { + val intent = Intent(this, ReaderActivity::class.java) - DragDismissIntentBuilder(this) + DragDismissIntentBuilder(this) .setFullscreenOnTablets(true) // defaults to false, tablets will have padding on each side .setDragElasticity(DragDismissIntentBuilder.DragElasticity.NORMAL) // Larger elasticities will make it easier to dismiss. .setDrawUnderStatusBar(true) .build(intent) - intent.putExtra("url", linkDecoded) - app.startActivity(intent) - } else { - try { - CustomTabActivityHelper.openCustomTab(app, customTabsIntent, Uri.parse(linkDecoded) - ) { _, uri -> - val intent = Intent(Intent.ACTION_VIEW, uri) - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK - startActivity(intent) + intent.putExtra("url", linkDecoded) + app.startActivity(intent) + } else { + try { + CustomTabActivityHelper.openCustomTab(app, customTabsIntent, Uri.parse(linkDecoded) + ) { _, uri -> + val intent = Intent(Intent.ACTION_VIEW, uri) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + startActivity(intent) + } + } catch (e: Exception) { + openInBrowser(linkDecoded, app) } - } catch (e: Exception) { - openInBrowser(linkDecoded, app) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ac8647d..f0a3f93 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -155,4 +155,5 @@ No api call will be logged (BETA) Load more articles on scroll Translation + The item url is invalid. I\'m looking into solving this issue so the app won\'t crash. \ No newline at end of file