Fix schemes that can be downloaded
Change-Id: I4a2b75a6ce923e7176f4f0b17fbaae5b1c5ef543
diff --git a/src/com/android/browser/UrlUtils.java b/src/com/android/browser/UrlUtils.java
index ff78647..d00e8c3 100755
--- a/src/com/android/browser/UrlUtils.java
+++ b/src/com/android/browser/UrlUtils.java
@@ -22,11 +22,18 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.HashSet;
+import java.util.Arrays;
/**
* Utility methods for Url manipulation
*/
public class UrlUtils {
+ public static final String[] DOWNLOADABLE_SCHEMES_VALUES = new String[]
+ { "data", "filesystem", "http", "https" };
+
+ private static final HashSet<String> DOWNLOADABLE_SCHEMES =
+ new HashSet<String>(Arrays.asList(DOWNLOADABLE_SCHEMES_VALUES));
static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile(
"(?i)" + // switch on case insensitive matching
@@ -89,6 +96,18 @@
return smartUrlFilter(url, true);
}
+ public static boolean isDownloadableScheme(Uri uri) {
+ return DOWNLOADABLE_SCHEMES.contains(uri.getScheme());
+ }
+
+ public static boolean isDownloadableScheme(String uri) {
+ try {
+ return isDownloadableScheme(Uri.parse(uri));
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
/**
* Attempts to determine whether user input is a URL or search
* terms. Anything with a space is passed to search if canBeSearch is true.