From 954a1723f1c0ebc432c68facfbda7975027554a2 Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Thu, 13 Feb 2014 15:56:24 -0500 Subject: [PATCH] CB-5398 Work-around for KitKat content: URLs not rendering in tags --- .../apache/cordova/IceCreamCordovaWebViewClient.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java b/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java index 7eb759e2..5f32243c 100644 --- a/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java +++ b/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java @@ -59,7 +59,7 @@ public class IceCreamCordovaWebViewClient extends CordovaWebViewClient { // Allow plugins to intercept WebView requests. Uri remappedUri = resourceApi.remapUri(origUri); - if (!origUri.equals(remappedUri) || needsSpecialsInAssetUrlFix(origUri)) { + if (!origUri.equals(remappedUri) || needsSpecialsInAssetUrlFix(origUri) || needsKitKatContentUrlFix(origUri)) { OpenForReadResult result = resourceApi.openForRead(remappedUri, true); return new WebResourceResponse(result.mimeType, "UTF-8", result.inputStream); } @@ -74,6 +74,14 @@ public class IceCreamCordovaWebViewClient extends CordovaWebViewClient { } } + private static boolean needsKitKatContentUrlFix(Uri uri) { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { + if ("content".equals(uri.getScheme()) && uri.toString().contains("%3A")) { + return true; + } + } + return false; + } private static boolean needsSpecialsInAssetUrlFix(Uri uri) { if (CordovaResourceApi.getUriType(uri) != CordovaResourceApi.URI_TYPE_ASSET) { return false;