|
|
@ -10,6 +10,9 @@ import java.util.Collection; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import java.util.regex.Matcher; |
|
|
|
|
|
|
|
import java.util.regex.Pattern; |
|
|
|
|
|
|
|
import android.util.Base64; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* All the resources that make up the book. |
|
|
|
* All the resources that make up the book. |
|
|
@ -314,7 +317,17 @@ public class Resources implements Serializable { |
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
href = StringUtil.substringBefore(href, Constants.FRAGMENT_SEPARATOR_CHAR); |
|
|
|
href = StringUtil.substringBefore(href, Constants.FRAGMENT_SEPARATOR_CHAR); |
|
|
|
return resources.get(href); |
|
|
|
|
|
|
|
|
|
|
|
Pattern dataUriRegex = Pattern.compile("data:([\\w/\\-\\.]+);base64,(.*)"); |
|
|
|
|
|
|
|
Matcher dataUriMatcher = dataUriRegex.matcher(href); |
|
|
|
|
|
|
|
if (dataUriMatcher.find()) { |
|
|
|
|
|
|
|
String dataUriMediaTypeString = dataUriMatcher.group(1); |
|
|
|
|
|
|
|
MediaType dataUriMediaType = new MediaType(dataUriMediaTypeString, "." + StringUtil.substringAfterLast(dataUriMediaTypeString, '/')); |
|
|
|
|
|
|
|
byte[] dataUriData = Base64.decode(dataUriMatcher.group(2), Base64.DEFAULT); |
|
|
|
|
|
|
|
return new Resource(dataUriData, dataUriMediaType); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return resources.get(href); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|