[Android] License: Open external links in browser app
Diego Fernando Nieto
git at videolan.org
Sun Jun 28 10:40:17 CEST 2020
vlc-android | branch: master | Diego Fernando Nieto <diegofn at me.com> | Sat Jun 20 08:57:37 2020 -0500| [05236d4ae1895fb87f176576089c224e32460a95] | committer: Diego Fernando Nieto
License: Open external links in browser app
> https://code.videolan.org/videolan/vlc-android/commit/05236d4ae1895fb87f176576089c224e32460a95
---
.../java/org/videolan/television/ui/LicenceActivity.kt | 16 ++++++++++++++++
.../src/org/videolan/vlc/gui/AboutFragment.kt | 17 +++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/application/television/src/main/java/org/videolan/television/ui/LicenceActivity.kt b/application/television/src/main/java/org/videolan/television/ui/LicenceActivity.kt
index 7c53370aa..eca3f445a 100644
--- a/application/television/src/main/java/org/videolan/television/ui/LicenceActivity.kt
+++ b/application/television/src/main/java/org/videolan/television/ui/LicenceActivity.kt
@@ -1,6 +1,8 @@
package org.videolan.television.ui
import android.annotation.SuppressLint
+import android.content.Intent
+import android.net.Uri
import android.os.Bundle
import android.util.Base64
import android.view.View
@@ -34,6 +36,16 @@ class LicenceActivity : FragmentActivity() {
super.onPageFinished(view, url)
}
+
+ override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
+ if (url.contains("file://")) {
+ view.loadUrl(url)
+ } else {
+ val i = Intent(Intent.ACTION_VIEW, Uri.parse(url))
+ startActivity(i)
+ }
+ return true
+ }
}
setContentView(webView)
(webView.layoutParams as? FrameLayout.LayoutParams)?.let {
@@ -57,6 +69,8 @@ class LicenceActivity : FragmentActivity() {
"style.innerHTML = window.atob('" + encoded + "');" +
"parent.appendChild(style);" +
"})()")
+
+ webView.settings.javaScriptEnabled = false
} catch (e: Exception) {
e.printStackTrace()
}
@@ -73,6 +87,8 @@ class LicenceActivity : FragmentActivity() {
"link.setAttribute('href', newLink);" +
"link.innerText = newLink;" +
"})()")
+
+ webView.settings.javaScriptEnabled = false
} catch (e: Exception) {
e.printStackTrace()
}
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt b/application/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt
index 734711d99..f06313c1e 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt
@@ -21,7 +21,9 @@
package org.videolan.vlc.gui
import android.annotation.SuppressLint
+import android.content.Intent
import android.content.res.Configuration
+import android.net.Uri
import android.os.Bundle
import android.util.Base64
import android.view.LayoutInflater
@@ -45,6 +47,7 @@ import org.videolan.vlc.R
import org.videolan.vlc.gui.audio.AudioPagerAdapter
import org.videolan.vlc.gui.helpers.UiTools
+
private const val TAG = "VLC/AboutFragment"
private const val MODE_TOTAL = 2 // Number of audio browser modes
@@ -100,6 +103,16 @@ class AboutFragment : Fragment() {
}
super.onPageFinished(view, url)
}
+
+ override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
+ if (url.contains("file://")) {
+ view.loadUrl(url)
+ } else {
+ val i = Intent(Intent.ACTION_VIEW, Uri.parse(url))
+ startActivity(i)
+ }
+ return true
+ }
}
}
}
@@ -121,6 +134,8 @@ class AboutFragment : Fragment() {
"style.innerHTML = window.atob('" + encoded + "');" +
"parent.appendChild(style);" +
"})()")
+
+ webView.settings.javaScriptEnabled = false
} catch (e: Exception) {
e.printStackTrace()
}
@@ -137,6 +152,8 @@ class AboutFragment : Fragment() {
"link.setAttribute('href', newLink);" +
"link.innerText = newLink;" +
"})()")
+
+ webView.settings.javaScriptEnabled = false
} catch (e: Exception) {
e.printStackTrace()
}
More information about the Android
mailing list