Fix the observer effect in Images Flipper plugin (encoded cache)
Reviewed By: oprisnik Differential Revision: D31897870 fbshipit-source-id: bdd70d1679029931339ee589c98114f51646cb68
This commit is contained in:
committed by
Facebook GitHub Bot
parent
ef8557b5a1
commit
72b652fb87
@@ -229,17 +229,13 @@ public class FrescoFlipperPlugin extends BufferingFlipperPlugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// try to load from encoded cache
|
// try to load from encoded cache
|
||||||
CloseableReference<PooledByteBuffer> encodedRef =
|
PooledByteBuffer encoded =
|
||||||
imagePipelineFactory.getEncodedCountingMemoryCache().get(cacheKey);
|
imagePipelineFactory.getEncodedCountingMemoryCache().inspect(cacheKey);
|
||||||
try {
|
if (encoded != null) {
|
||||||
if (encodedRef != null) {
|
loadFromEncodedCache(encoded, imageId, cacheKey, responder);
|
||||||
loadFromEncodedCache(encodedRef, imageId, cacheKey, responder);
|
|
||||||
mPerfLogger.endMarker("Sonar.Fresco.getImage");
|
mPerfLogger.endMarker("Sonar.Fresco.getImage");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} finally {
|
|
||||||
CloseableReference.closeSafely(encodedRef);
|
|
||||||
}
|
|
||||||
|
|
||||||
// try to load from disk
|
// try to load from disk
|
||||||
loadFromDisk(imageId, cacheKey, responder);
|
loadFromDisk(imageId, cacheKey, responder);
|
||||||
@@ -262,13 +258,12 @@ public class FrescoFlipperPlugin extends BufferingFlipperPlugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadFromEncodedCache(
|
private void loadFromEncodedCache(
|
||||||
final CloseableReference<PooledByteBuffer> encodedRef,
|
final PooledByteBuffer encoded,
|
||||||
final String imageId,
|
final String imageId,
|
||||||
final CacheKey cacheKey,
|
final CacheKey cacheKey,
|
||||||
final FlipperResponder responder)
|
final FlipperResponder responder)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
byte[] encodedArray =
|
byte[] encodedArray = ByteStreams.toByteArray(new PooledByteBufferInputStream(encoded));
|
||||||
ByteStreams.toByteArray(new PooledByteBufferInputStream(encodedRef.get()));
|
|
||||||
Pair<Integer, Integer> dimensions = BitmapUtil.decodeDimensions(encodedArray);
|
Pair<Integer, Integer> dimensions = BitmapUtil.decodeDimensions(encodedArray);
|
||||||
if (dimensions == null) {
|
if (dimensions == null) {
|
||||||
respondError(responder, "can not get dimensions withId=" + imageId);
|
respondError(responder, "can not get dimensions withId=" + imageId);
|
||||||
|
|||||||
Reference in New Issue
Block a user