@Provides AsyncDrawable.Loader asyncDrawableLoader( OkHttpClient client, ExecutorService executorService, Resources resources) { return AsyncDrawableLoader.builder() .client(client) .executorService(executorService) .resources(resources) .mediaDecoders( SvgMediaDecoder.create(resources), GifMediaDecoder.create(false), ImageMediaDecoder.create(resources) ) .build(); }
@NonNull public static DataUriSchemeHandler create() { return new DataUriSchemeHandler(DataUriParser.create(), DataUriDecoder.create()); }
@Test public void data_new_lines_are_ignored() { final String input = "image/png;base64,iVBORw0KGgoAAA\n" + "ANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4\n" + "//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU\n" + "5ErkJggg=="; assertEquals( new DataUri("image/png", true, "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="), impl.parse(input) ); }
@Test public void test() { final Map<String, DataUri> data = new LinkedHashMap<String, DataUri>() {{ put(",", new DataUri(null, false, null)); put("image/svg+xml;base64,!@#$%^&*(", new DataUri("image/svg+xml", true, "!@#$%^&*(")); put("text/vnd-example+xyz;foo=bar;base64,R0lGODdh", new DataUri("text/vnd-example+xyz", true, "R0lGODdh")); put("text/plain;charset=UTF-8;page=21,the%20data:1234,5678", new DataUri("text/plain", false, "the%20data:1234,5678")); }}; for (Map.Entry<String, DataUri> entry : data.entrySet()) { assertEquals(entry.getKey(), entry.getValue(), impl.parse(entry.getKey())); } }
@NonNull public static DataUriParser create() { return new Impl(); }
@Before public void before() { handler = DataUriSchemeHandler.create(); }
@NonNull public static GifMediaDecoder create(boolean autoPlayGif) { return new GifMediaDecoder(autoPlayGif); }
@NonNull public static FileSchemeHandler create() { return new FileSchemeHandler(null); }
@NonNull public static AsyncDrawableLoader.Builder builder() { return new Builder(); }
@NonNull public static DataUriDecoder create() { return new Impl(); }
@Nullable private MediaDecoder mediaDecoderFromContentType(@Nullable String contentType) { MediaDecoder out = null; for (MediaDecoder mediaDecoder : mediaDecoders) { if (mediaDecoder.canDecodeByContentType(contentType)) { out = mediaDecoder; break; } } return out; }
@NonNull public static NetworkSchemeHandler create(@NonNull OkHttpClient client) { return new NetworkSchemeHandler(client); }
@NonNull public static ImageMediaDecoder create(@NonNull Resources resources) { return new ImageMediaDecoder(resources); }
@Before public void before() { impl = new DataUriParser.Impl(); }