summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-09-27 19:09:10 +0300
committerAndrew Dolgov <[email protected]>2020-09-27 19:09:10 +0300
commitf3947248ab035fc433844a3125d2e441780bb559 (patch)
treef2fcb24f21628a7a660755fdc421fde01089c6f3
parent83accf02f5db0c7bcead78c9678952de2256c677 (diff)
only open internal URLs in the same webview, send everything else to intent ACTION_VIEW
-rw-r--r--org.fox.epube/build.gradle4
-rw-r--r--org.fox.epube/src/main/java/org/fox/epube/MainActivity.java17
2 files changed, 18 insertions, 3 deletions
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;
}