From f3947248ab035fc433844a3125d2e441780bb559 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 27 Sep 2020 19:09:10 +0300 Subject: only open internal URLs in the same webview, send everything else to intent ACTION_VIEW --- org.fox.epube/build.gradle | 4 ++-- .../src/main/java/org/fox/epube/MainActivity.java | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'org.fox.epube') diff --git a/org.fox.epube/build.gradle b/org.fox.epube/build.gradle index a948353..5078cfa 100644 --- a/org.fox.epube/build.gradle +++ b/org.fox.epube/build.gradle @@ -7,8 +7,8 @@ android { applicationId "org.fox.epube" minSdkVersion 23 targetSdkVersion 29 - versionCode 2 - versionName "1.1" + versionCode 3 + versionName "1.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java index 5f73463..c2e7ac8 100644 --- a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java +++ b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java @@ -1,9 +1,11 @@ package org.fox.epube; import android.content.Context; +import android.content.Intent; import android.content.res.Configuration; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -87,7 +89,20 @@ public class MainActivity extends AppCompatActivity { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { - view.loadUrl(url); + Log.d(TAG, "load URL=" + url); + + if (url.indexOf(BASE_URL) == 0) { + view.loadUrl(url); + } else { + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + + try { + startActivity(intent); + } catch (Exception e) { + toast(e.getMessage()); + } + } + return true; } -- cgit v1.2.3