diff --git a/libraries/datasource/src/main/java/androidx/media3/datasource/DataSourceBitmapLoader.java b/libraries/datasource/src/main/java/androidx/media3/datasource/DataSourceBitmapLoader.java index f8a927bbf6..5878784d8b 100644 --- a/libraries/datasource/src/main/java/androidx/media3/datasource/DataSourceBitmapLoader.java +++ b/libraries/datasource/src/main/java/androidx/media3/datasource/DataSourceBitmapLoader.java @@ -47,7 +47,7 @@ import java.util.concurrent.Executors; * that is shared between instances of this class. */ @UnstableApi -public final class DataSourceBitmapLoader implements BitmapLoader { +public class DataSourceBitmapLoader implements BitmapLoader { public static final Supplier DEFAULT_EXECUTOR_SERVICE = Suppliers.memoize( @@ -100,19 +100,19 @@ public final class DataSourceBitmapLoader implements BitmapLoader { } @Override - public ListenableFuture decodeBitmap(byte[] data) { + public final ListenableFuture decodeBitmap(byte[] data) { return listeningExecutorService.submit(() -> decode(data, options)); } @Override - public ListenableFuture loadBitmap(Uri uri) { + public final ListenableFuture loadBitmap(Uri uri) { return listeningExecutorService.submit( () -> load(dataSourceFactory.createDataSource(), uri, options)); } // BitmapFactory's options parameter is null-ok. @SuppressWarnings("nullness:argument.type.incompatible") - private static Bitmap decode(byte[] data, @Nullable BitmapFactory.Options options) + protected static Bitmap decode(byte[] data, @Nullable BitmapFactory.Options options) throws IOException { @Nullable Bitmap bitmap = BitmapFactory.decodeByteArray(data, /* offset= */ 0, data.length, options);