mirror of
https://github.com/androidx/media.git
synced 2025-05-18 04:59:54 +08:00
Simplify CacheUtil
PiperOrigin-RevId: 250654697
This commit is contained in:
parent
42ba6abf5a
commit
e2452f8103
@ -79,13 +79,7 @@ public final class CacheUtil {
|
||||
DataSpec dataSpec, Cache cache, @Nullable CacheKeyFactory cacheKeyFactory) {
|
||||
String key = buildCacheKey(dataSpec, cacheKeyFactory);
|
||||
long position = dataSpec.absoluteStreamPosition;
|
||||
long requestLength;
|
||||
if (dataSpec.length != C.LENGTH_UNSET) {
|
||||
requestLength = dataSpec.length;
|
||||
} else {
|
||||
long contentLength = ContentMetadata.getContentLength(cache.getContentMetadata(key));
|
||||
requestLength = contentLength == C.LENGTH_UNSET ? C.LENGTH_UNSET : contentLength - position;
|
||||
}
|
||||
long requestLength = getRequestLength(dataSpec, cache, key);
|
||||
long bytesAlreadyCached = 0;
|
||||
long bytesLeft = requestLength;
|
||||
while (bytesLeft != 0) {
|
||||
@ -180,22 +174,19 @@ public final class CacheUtil {
|
||||
Assertions.checkNotNull(dataSource);
|
||||
Assertions.checkNotNull(buffer);
|
||||
|
||||
String key = buildCacheKey(dataSpec, cacheKeyFactory);
|
||||
long bytesLeft;
|
||||
ProgressNotifier progressNotifier = null;
|
||||
if (progressListener != null) {
|
||||
progressNotifier = new ProgressNotifier(progressListener);
|
||||
Pair<Long, Long> lengthAndBytesAlreadyCached = getCached(dataSpec, cache, cacheKeyFactory);
|
||||
progressNotifier.init(lengthAndBytesAlreadyCached.first, lengthAndBytesAlreadyCached.second);
|
||||
bytesLeft = lengthAndBytesAlreadyCached.first;
|
||||
} else {
|
||||
bytesLeft = getRequestLength(dataSpec, cache, key);
|
||||
}
|
||||
|
||||
String key = buildCacheKey(dataSpec, cacheKeyFactory);
|
||||
long position = dataSpec.absoluteStreamPosition;
|
||||
long bytesLeft;
|
||||
if (dataSpec.length != C.LENGTH_UNSET) {
|
||||
bytesLeft = dataSpec.length;
|
||||
} else {
|
||||
long contentLength = ContentMetadata.getContentLength(cache.getContentMetadata(key));
|
||||
bytesLeft = contentLength == C.LENGTH_UNSET ? C.LENGTH_UNSET : contentLength - position;
|
||||
}
|
||||
boolean lengthUnset = bytesLeft == C.LENGTH_UNSET;
|
||||
while (bytesLeft != 0) {
|
||||
throwExceptionIfInterruptedOrCancelled(isCanceled);
|
||||
@ -235,6 +226,17 @@ public final class CacheUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static long getRequestLength(DataSpec dataSpec, Cache cache, String key) {
|
||||
if (dataSpec.length != C.LENGTH_UNSET) {
|
||||
return dataSpec.length;
|
||||
} else {
|
||||
long contentLength = ContentMetadata.getContentLength(cache.getContentMetadata(key));
|
||||
return contentLength == C.LENGTH_UNSET
|
||||
? C.LENGTH_UNSET
|
||||
: contentLength - dataSpec.absoluteStreamPosition;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads and discards all data specified by the {@code dataSpec}.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user