From 6016418c3320788a17279cb8b2f0cd018efbeba7 Mon Sep 17 00:00:00 2001 From: birdbird <67737443+tzugen@users.noreply.github.com> Date: Wed, 6 Jul 2022 07:17:46 +0200 Subject: [PATCH 1/2] Support file schemes in SimpleBitmapLoader Fixes #108 --- .../main/java/androidx/media3/session/SimpleBitmapLoader.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java b/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java index e3ddd87e76..1b136138ed 100644 --- a/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java +++ b/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java @@ -89,6 +89,9 @@ public final class SimpleBitmapLoader implements BitmapLoader { } private static Bitmap load(Uri uri) throws IOException { + if (uri.getScheme().equals("file")) { + return BitmapFactory.decodeFile(uri.getPath()); + } URLConnection connection = new URL(uri.toString()).openConnection(); if (!(connection instanceof HttpURLConnection)) { throw new UnsupportedOperationException("Unsupported scheme: " + uri.getScheme()); From 836023589ee1ff3cf5557967c6b5f1f820140e9a Mon Sep 17 00:00:00 2001 From: birdbird <67737443+tzugen@users.noreply.github.com> Date: Tue, 26 Jul 2022 20:12:12 +0200 Subject: [PATCH 2/2] Update JavaDoc accordingly --- .../java/androidx/media3/session/SimpleBitmapLoader.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java b/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java index 1b136138ed..58f07c7152 100644 --- a/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java +++ b/libraries/session/src/main/java/androidx/media3/session/SimpleBitmapLoader.java @@ -38,15 +38,16 @@ import java.util.concurrent.Executors; /** * A simple bitmap loader that delegates all tasks to an executor and supports fetching images from - * HTTP/HTTPS endpoints. + * {@code file} and {@code http}/{@code https} URIs. * *
Loading tasks are delegated to an {@link ExecutorService} (or {@link * ListeningExecutorService}) defined during construction. If no executor service is defined, all * tasks are delegated to a single-thread executor service that is shared between instances of this * class. * - *
The supported URI scheme is only HTTP/HTTPS and this class reads a resource only when the - * endpoint responds with an {@code HTTP 200} after sending the HTTP request. + *
The supported URIs schemes are {@code file} and {@code http}/{@code https}. + * For HTTP(S) transfers, this class reads a resource only when the endpoint responds + * with an {@code HTTP 200} after sending the HTTP request. */ @UnstableApi public final class SimpleBitmapLoader implements BitmapLoader {