Deprecate RAW_RESOURCE_SCHEME and util method
It's better to use the generic Android resource scheme which is at least as powerful as our own one. Issue: androidx/media#868 PiperOrigin-RevId: 590168919
This commit is contained in:
parent
27f437b65a
commit
8e33fbd536
@ -38,6 +38,7 @@ public final class RawResourceDataSourceContractTest extends DataSourceContractT
|
|||||||
return new RawResourceDataSource(ApplicationProvider.getApplicationContext());
|
return new RawResourceDataSource(ApplicationProvider.getApplicationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation") // Testing deprecated buildRawResourceUri method
|
||||||
@Override
|
@Override
|
||||||
protected ImmutableList<TestResource> getTestResources() {
|
protected ImmutableList<TestResource> getTestResources() {
|
||||||
// Android packages raw resources into a single file. When reading a resource other than the
|
// Android packages raw resources into a single file. When reading a resource other than the
|
||||||
@ -100,6 +101,6 @@ public final class RawResourceDataSourceContractTest extends DataSourceContractT
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Uri getNotFoundUri() {
|
protected Uri getNotFoundUri() {
|
||||||
return RawResourceDataSource.buildRawResourceUri(Resources.ID_NULL);
|
return Uri.parse("android.resource://" + Resources.ID_NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,10 @@ public final class DefaultDataSource implements DataSource {
|
|||||||
private static final String SCHEME_RTMP = "rtmp";
|
private static final String SCHEME_RTMP = "rtmp";
|
||||||
private static final String SCHEME_UDP = "udp";
|
private static final String SCHEME_UDP = "udp";
|
||||||
private static final String SCHEME_DATA = DataSchemeDataSource.SCHEME_DATA;
|
private static final String SCHEME_DATA = DataSchemeDataSource.SCHEME_DATA;
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation") // Detecting deprecated scheme.
|
||||||
private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME;
|
private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME;
|
||||||
|
|
||||||
private static final String SCHEME_ANDROID_RESOURCE = ContentResolver.SCHEME_ANDROID_RESOURCE;
|
private static final String SCHEME_ANDROID_RESOURCE = ContentResolver.SCHEME_ANDROID_RESOURCE;
|
||||||
|
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
@ -40,11 +40,9 @@ import java.nio.channels.FileChannel;
|
|||||||
/**
|
/**
|
||||||
* A {@link DataSource} for reading a raw resource.
|
* A {@link DataSource} for reading a raw resource.
|
||||||
*
|
*
|
||||||
* <p>URIs supported by this source are of one of the forms:
|
* <p>URIs supported by this source are:
|
||||||
*
|
*
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>{@code rawresource:///id}, where {@code id} is the integer identifier of a raw resource in
|
|
||||||
* this application.
|
|
||||||
* <li>{@code android.resource:///id}, where {@code id} is the integer identifier of a raw
|
* <li>{@code android.resource:///id}, where {@code id} is the integer identifier of a raw
|
||||||
* resource in this application.
|
* resource in this application.
|
||||||
* <li>{@code android.resource://[package]/[type/]name}, where {@code package} is the name of the
|
* <li>{@code android.resource://[package]/[type/]name}, where {@code package} is the name of the
|
||||||
@ -64,7 +62,9 @@ import java.nio.channels.FileChannel;
|
|||||||
* the ecosystem (including being <a href="https://stackoverflow.com/a/4896272">recommended on Stack
|
* the ecosystem (including being <a href="https://stackoverflow.com/a/4896272">recommended on Stack
|
||||||
* Overflow</a>).
|
* Overflow</a>).
|
||||||
*
|
*
|
||||||
* <p>{@link #buildRawResourceUri(int)} can be used to build supported {@link Uri}s.
|
* <p>{@code new
|
||||||
|
* Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE).path(Integer.toString(resourceId)).build()}
|
||||||
|
* can be used to build supported {@link Uri}s.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
@UnstableApi
|
||||||
public final class RawResourceDataSource extends BaseDataSource {
|
public final class RawResourceDataSource extends BaseDataSource {
|
||||||
@ -97,17 +97,20 @@ public final class RawResourceDataSource extends BaseDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a {@link Uri} for the specified raw resource identifier.
|
* @deprecated Use {@code new
|
||||||
*
|
* Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE).path(Integer.toString(rawResourceId)).build()}
|
||||||
* @param rawResourceId A raw resource identifier (i.e. a constant defined in {@code R.raw}).
|
* instead.
|
||||||
* @return The corresponding {@link Uri}.
|
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("deprecation") // Using deprecated scheme
|
||||||
|
@Deprecated
|
||||||
public static Uri buildRawResourceUri(int rawResourceId) {
|
public static Uri buildRawResourceUri(int rawResourceId) {
|
||||||
return Uri.parse(RAW_RESOURCE_SCHEME + ":///" + rawResourceId);
|
return Uri.parse(RAW_RESOURCE_SCHEME + ":///" + rawResourceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The scheme part of a raw resource URI. */
|
/**
|
||||||
public static final String RAW_RESOURCE_SCHEME = "rawresource";
|
* @deprecated Use {@link ContentResolver#SCHEME_ANDROID_RESOURCE} instead.
|
||||||
|
*/
|
||||||
|
@Deprecated public static final String RAW_RESOURCE_SCHEME = "rawresource";
|
||||||
|
|
||||||
private final Context applicationContext;
|
private final Context applicationContext;
|
||||||
|
|
||||||
@ -200,6 +203,7 @@ public final class RawResourceDataSource extends BaseDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Resolves {@code dataSpec.uri} to an {@link AssetFileDescriptor}. */
|
/** Resolves {@code dataSpec.uri} to an {@link AssetFileDescriptor}. */
|
||||||
|
@SuppressWarnings("deprecation") // Accepting deprecated scheme
|
||||||
private static AssetFileDescriptor openAssetFileDescriptor(
|
private static AssetFileDescriptor openAssetFileDescriptor(
|
||||||
Context applicationContext, DataSpec dataSpec) throws RawResourceDataSourceException {
|
Context applicationContext, DataSpec dataSpec) throws RawResourceDataSourceException {
|
||||||
Uri normalizedUri = dataSpec.uri.normalizeScheme();
|
Uri normalizedUri = dataSpec.uri.normalizeScheme();
|
||||||
@ -261,10 +265,8 @@ public final class RawResourceDataSource extends BaseDataSource {
|
|||||||
"Unsupported URI scheme ("
|
"Unsupported URI scheme ("
|
||||||
+ normalizedUri.getScheme()
|
+ normalizedUri.getScheme()
|
||||||
+ "). Only "
|
+ "). Only "
|
||||||
+ RAW_RESOURCE_SCHEME
|
|
||||||
+ " and "
|
|
||||||
+ ContentResolver.SCHEME_ANDROID_RESOURCE
|
+ ContentResolver.SCHEME_ANDROID_RESOURCE
|
||||||
+ " are supported.",
|
+ " is supported.",
|
||||||
/* cause= */ null,
|
/* cause= */ null,
|
||||||
PlaybackException.ERROR_CODE_FAILED_RUNTIME_CHECK);
|
PlaybackException.ERROR_CODE_FAILED_RUNTIME_CHECK);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user